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.
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/confighiệ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:
- Yêu cầu hệ thống để cài đặt K3s (Docs)
- Kiến trúc hoạt động của K3s
- Các bản phân phối Kubernetes tương thích với Rancher
Bình luận
Bài viết liên quan
Hướng dẫn cài đặt Caddy Reverse Proxy cực kỳ nhẹ và dễ sử dụng
Caddy Server là gì? Hướng dẫn chi tiết cách cài đặt Caddy bằng Docker và cấu hình Caddy làm Reverse Proxy tự động cấp phát SSL miễn phí cực kỳ dễ dàng.
MiniStack Là Gì? Giải Pháp Giả Lập AWS Hoàn Hảo Cực Nhẹ Chạy Trên Local
MiniStack là gì? Tìm hiểu công cụ mã nguồn mở giả lập các dịch vụ AWS ngay trên máy tính của bạn. So sánh chi tiết MiniStack và LocalStack dành cho DevOps.
Bảo mật Web Services với Traefik Reverse Proxy
Tìm hiểu về Traefik Reverse Proxy - công cụ Load Balancer hiện đại giúp tự động cấu hình và bảo mật các ứng dụng chạy trên Docker và Kubernetes.