Homelab: Hướng dẫn cài đặt Cluster Kubernetes siêu nhẹ với K3s

K3s là gì? Hướng dẫn chi tiết cách cài đặt một cụm Cluster Kubernetes siêu nhẹ (K3s) dành cho hệ thống Homelab, Raspberry Pi hoặc các thiết bị IoT.

Homelab: Hướng dẫn cài đặt Cluster Kubernetes siêu nhẹ với K3s

K3s là một phiên bản rút gọn, siêu nhẹ của Kubernetes được phát triển bởi Rancher. Nó loại bỏ các thành phần dư thừa không cần thiết, cực kỳ lý tưởng cho các môi trường phát triển nhỏ, hệ thống Homelab hoặc các thiết bị IoT biên (Edge/IoT).

Bài viết này TechCoBan sẽ chia sẻ với anh em đam mê Homelab cách cài đặt và cấu hình một cụm cluster Kubernetes đơn giản sử dụng K3s.

1. Yêu cầu chuẩn bị

Để thực hiện, anh em cần chuẩn bị một máy tính cá nhân cấu hình tầm trung hoặc một con server Homelab cỡ nhỏ như Raspberry Pi 5, ZimaBoard, hoặc một VPS Linux.

Kiến trúc phần cứng hỗ trợ: K3s hỗ trợ đa nền tảng, có thể kể đến như:

  • x86_64 (Máy tính PC, Server Intel/AMD)
  • armhf / arm64 / aarch64 (Raspberry Pi, ARM Server)

Phần cứng yêu cầu tối thiểu (Cực nhẹ):

  • CPU: 1 Core
  • RAM: 512 MB (Quá tuyệt vời cho các máy tính nhúng!)

2. Cài đặt K3s

Trong bài viết này, mình sẽ thực hành cài trên máy chủ Homelab Raspberry Pi 5 chạy Ubuntu/Debian.

Để cài đặt K3s, anh em chỉ cần chạy một dòng lệnh duy nhất:

curl -sfL https://get.k3s.io | sh -

Lệnh này sẽ tự động tải script từ trang chủ K3s và tiến hành cài đặt toàn bộ các thành phần cần thiết (bao gồm cả kubectl).

Tiếp theo, nếu anh em có nhu cầu triển khai ứng dụng bằng Helm, hãy cài thêm Helm:

sudo snap install helm --classic

(Nếu không dùng Snap, anh em có thể cài trực tiếp từ trang chủ của Helm).

3. Lấy file cấu hình Kubernetes (Kubeconfig)

Để có thể dùng lệnh kubectl tương tác với cụm K3s vừa tạo, anh em cần sao chép file cấu hình mặc định ra thư mục của user hiện tại.

Chạy lệnh sau:

sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config

LƯU Ý: Hành động này sẽ ghi đè lên file config ~/.kube/config hiện tại. Nếu anh em đang quản lý nhiều cụm K8s khác, hãy backup file cũ lại cho an toàn nhé.

Để đảm bảo user của anh em có quyền đọc/ghi file config này mà không cần dùng sudo, chạy lệnh cấp quyền sau:

sudo chown $USER: ~/.kube/config

Sau khi hoàn tất, chúng ta hãy thử kiểm tra cụm K3s xem đã hoạt động chưa:

kubectl get nodes
kubectl get pods --all-namespaces

Mẹo nhỏ: Nếu anh em muốn quản lý cụm K3s này từ một máy tính cá nhân khác (như Macbook hay Laptop Windows), chỉ cần tải file /etc/rancher/k3s/k3s.yaml này về máy cá nhân, đổi IP 127.0.0.1 thành IP của server K3s, và bỏ vào thư mục ~/.kube/config trên máy cá nhân là xong.

4. Các lệnh quản lý dịch vụ K3s

K3s chạy dưới dạng một Systemd service trên Linux. Đây là một số câu lệnh hữu ích để anh em quản lý:

# Dừng dịch vụ K3s
sudo systemctl stop k3s

# Khởi động lại dịch vụ K3s
sudo systemctl start k3s

# Khởi động lại (Restart) K3s
sudo systemctl restart k3s

5. Kết nối Multi-Node Cluster (Thêm Worker Node)

K3s hỗ trợ kết nối nhiều máy tính lại với nhau tạo thành một cụm (Cluster) lớn hơn. Để thêm một máy tính khác (Worker Node) vào cụm hiện tại (Master Node), anh em làm như sau:

Bước 1: Lấy mã K3S_TOKEN trên Master Node:

sudo cat /var/lib/rancher/k3s/server/node-token

(Hãy copy đoạn mã token dài ngoằng hiển thị trên màn hình).

Bước 2: Chuyển sang máy tính Worker Node, chạy câu lệnh sau để cài đặt và tự động join vào cụm (Thay thế các thông số cho đúng):

curl -sfL https://get.k3s.io | K3S_URL=https://<IP_MASTER_NODE>:6443 K3S_TOKEN=<ĐOẠN_MÃ_TOKEN_VỪA_COPY> sh -

Bước 3: Sau khi cài đặt hoàn tất, quay lại Master Node và kiểm tra danh sách Node:

kubectl get nodes

Anh em sẽ thấy Node mới đã được thêm vào và ở trạng thái Ready. Quá đơn giản phải không?

6. Lời kết

Trên đây là toàn bộ quá trình thiết lập một hệ thống Homelab cơ bản với cụm Kubernetes siêu nhẹ sử dụng K3s. Giải pháp này cực kỳ tiết kiệm điện và tài nguyên, rất thích hợp cho anh em “vọc vạch” tự học DevOps tại nhà.

Ngoài K3s, anh em cũng có thể tham khảo các giải pháp Kubernetes tinh gọn khác tương tự như: MicroK8s, Minikube hay Kubeadm. Chúc anh em thực hành thành công!

Bài viết có sử dụng thông tin từ các nguồn tài liệu chính thức bên dưới. Anh em có thể đọc thêm để tìm hiểu sâu hơn:

Bình luận

Bài viết liên quan