Cài đặt Helm CLI trên Node Master
Ta cần cài đặt công cụ quản lý package Helm phiên bản mới nhất trực tiếp trên node master của cụm K3s. Phương pháp này dùng script chính thức của Helm, đảm bảo tính tương thích và an toàn.
(1) Làm gì: Thực thi lệnh tải và cài đặt Helm v3.
(2) Tại sao: K3s thường đi kèm với các công cụ cơ bản nhưng không bao gồm Helm CLI. Script này tự động tải binary, đặt vào /usr/local/bin và tạo symlink cần thiết.
(3) Kết quả mong đợi: Lệnh helm version trả về phiên bản hiện tại của client mà không báo lỗi "command not found".
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | sudo sh
Kiểm tra phiên bản đã cài đặt thành công.
helm version
Đầu ra sẽ hiển thị thông tin phiên bản Client và Server (nếu đã có kubeconfig), ví dụ: version.BuildInfo{Version:"v3.13.0", ...}.
Cấu hình kết nối Helm với Cluster K3s
Helm CLI cần quyền truy cập vào kubeconfig để giao tiếp với API server của K3s. Trên K3s, file kubeconfig mặc định nằm trong thư mục của user root hoặc admin.
Xác định đường dẫn Kubeconfig
(1) Làm gì: Kiểm tra file kubeconfig mặc định của K3s và cấu biến môi trường nếu cần.
(2) Tại sao: K3s lưu kubeconfig tại /etc/rancher/k3s/k3s.yaml. Helm mặc định tìm file này tại ~/.kube/config. Nếu không trỏ đúng, Helm không thể connect.
(3) Kết quả mong đợi: Biến môi trường KUBECONFIG được đặt hoặc file config được link đúng vị trí.
Thực hiện lệnh export biến môi trường để Helm đọc đúng file của K3s.
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
Để cấu hình này tồn tại lâu dài, ta thêm vào file ~/.bashrc hoặc ~/.zshrc.
Đường dẫn đầy đủ: ~/.bashrc
Nội dung thêm vào cuối file:
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
Áp dụng thay đổi ngay lập tức.
source ~/.bashrc
Thiết lập quyền truy cập (Tùy chọn nhưng cần thiết)
(1) Làm gì: Nếu bạn không chạy với quyền root, hãy copy file kubeconfig về home directory.
(2) Tại sao: File k3s.yaml thường chỉ root mới đọc được. Copy về home giúp user thường cũng có thể dùng Helm.
(3) Kết quả mong đợi: File ~/.kube/config tồn tại và có quyền đọc.
mkdir -p ~/.kube && sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config && sudo chown $USER:$USER ~/.kube/config
Verify kết quả bằng lệnh:
helm list
Kết quả là danh sách rỗng (no releases found) nếu chưa cài gì, hoặc lỗi connection refused nếu cấu hình sai. Nếu thấy Release rỗng, ta đã kết nối thành công.
Thêm các Repository Helm phổ biến
Để triển khai ứng dụng từ Bitnami và Rancher, ta cần thêm các repository này vào Helm. Các repo này chứa các chart đã được đóng gói sẵn, giúp việc cài đặt trở nên nhanh chóng.
Thêm Repository Bitnami
(1) Làm gì: Thêm repo Bitnami vào danh sách Helm.
(2) Tại sao: Bitnami cung cấp thư viện chart rất lớn cho các ứng dụng phổ biến (Redis, MySQL, Nginx, Prometheus) với cấu hình tối ưu sẵn.
(3) Kết quả mong đợi: Repo bitnami xuất hiện trong danh sách helm repo list.
helm repo add bitnami https://charts.bitnami.com/bitnami
Thêm Repository Rancher
(1) Làm gì: Thêm repo Rancher vào danh sách Helm.
(2) Tại sao: Rancher là vendor của K3s. Repo này chứa các chart đặc thù cho K3s và Rancher, như Dashboard, Longhorn (storage), hoặc các công cụ monitoring tích hợp sẵn.
(3) Kết quả mong đợi: Repo rancher xuất hiện trong danh sách.
helm repo add rancher https://rancher.github.io/helm3-charts
Cập nhật danh sách Chart
(1) Làm gì: Cập nhật thông tin chart mới nhất từ các repo đã thêm.
(2) Tại sao: Khi thêm repo, Helm chỉ lưu URL. Lệnh update tải về danh sách các phiên bản chart hiện có để ta biết phiên bản nào mới nhất.
(3) Kết quả mong đợi: Thông báo Hang tight... và danh sách các repo được cập nhật.
helm repo update
Verify kết quả cuối cùng của toàn bộ phần cấu hình:
helm repo list
Đầu ra phải hiển thị 2 dòng với tên bitnami và rancher cùng URL tương ứng.
Điều hướng series:
Mục lục: Series: Xây dựng hạ tầng Kubernetes tự động (Auto-Scaling) với K3s và Helm trên Proxmox
« Phần 2: Triển khai cụm K3s đầu tiên trên Proxmox
Phần 4: Triển khai Metric Server để theo dõi tài nguyên »