Sổ tay kỹ thuật

Helm – lệnh hay dùng

cheatsheet#kubernetes#helm· cập nhật 2026-11-06

Tra nhanh lệnh Helm (3.x/4.x) để cài, nâng cấp, rollback release, xem values và debug template chart.

Sửa trang này
Mục lục

Quy ước: <rel> là tên release, <chart> dạng repo/chart hoặc oci://.... Helm lưu trạng thái release dưới dạng Secret trong namespace của release. Luôn thêm -n <ns>.

Repo và tìm chart

Mục đích Lệnh
Thêm repo helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Cập nhật index helm repo update
Liệt kê repo helm repo list
Tìm chart trong repo đã thêm helm search repo nginx
Xem các version có sẵn helm search repo ingress-nginx/ingress-nginx --versions | head
Xem values mặc định helm show values ingress-nginx/ingress-nginx > values-default.yaml
Xem Chart.yaml / README helm show chart <chart> / helm show readme <chart>
Kéo chart về máy helm pull <chart> --version 4.11.3 --untar
Chart OCI helm show values oci://registry.example.com/charts/app --version 1.2.0

Cài và nâng cấp

Mục đích Lệnh
Cài hoặc nâng cấp (idempotent, dùng trong CI) helm upgrade --install <rel> <chart> -n <ns> --create-namespace -f values.yaml
Ghim version chart helm upgrade --install <rel> <chart> --version 4.11.3 -n <ns>
Ghi đè 1 giá trị --set image.tag=1.4.2 / chuỗi: --set-string podAnnotations.rev=42
Nhiều file values (file sau đè file trước) -f values.yaml -f values-prod.yaml
Chờ tài nguyên Ready, timeout --wait --timeout 10m
Tự rollback nếu fail --atomic (Helm 4 đổi tên thành --rollback-on-failure)
Giữ values cũ, chỉ đổi một chỗ helm upgrade <rel> <chart> -n <ns> --reuse-values --set image.tag=1.4.3
Gỡ release helm uninstall <rel> -n <ns>

--reuse-values gộp values cũ với --set mới nhưng bỏ qua default mới của chart version mới. Khi nâng version chart, truyền lại đầy đủ -f values.yaml thay vì dùng cờ này.

Xem trạng thái release

Mục đích Lệnh
Release trong namespace / mọi namespace helm list -n <ns> / helm list -A
Gồm cả release lỗi/pending helm list -A --all
Trạng thái, notes helm status <rel> -n <ns>
Lịch sử revision helm history <rel> -n <ns>
Values người dùng truyền vào helm get values <rel> -n <ns>
Values đầy đủ (gồm default) helm get values <rel> -n <ns> --all
Manifest đã apply helm get manifest <rel> -n <ns>
Values của revision cũ helm get values <rel> -n <ns> --revision 3

Rollback

Mục đích Lệnh
Về revision trước helm rollback <rel> -n <ns>
Về revision cụ thể helm rollback <rel> 3 -n <ns> --wait
Release kẹt pending-upgrade / pending-install helm history <rel> -n <ns> rồi helm rollback <rel> <rev-deployed-cuối> -n <ns>

Debug template

Mục đích Lệnh
Render ra YAML không cần cluster helm template <rel> <chart> -f values.yaml > out.yaml
Render một template helm template <rel> ./chart -s templates/deployment.yaml
Chạy thử với cluster (server-side validate) helm upgrade --install <rel> <chart> -f values.yaml --dry-run=server --debug
Kiểm tra lỗi chart helm lint ./chart -f values.yaml
So sánh trước khi upgrade helm diff upgrade <rel> <chart> -f values.yaml -n <ns> (cần plugin helm-diff)
Chạy test hook của chart helm test <rel> -n <ns>

Viết chart

Mục đích Lệnh
Tạo khung chart helm create mychart
Tải dependency khai báo trong Chart.yaml helm dependency update ./mychart
Đóng gói helm package ./mychart --version 1.2.0
Đăng nhập và push lên OCI registry helm registry login registry.example.com / helm push mychart-1.2.0.tgz oci://registry.example.com/charts

Trong template, dùng {{ .Values.x | default "y" }}, {{- toYaml .Values.resources | nindent 12 }} và required "image.tag là bắt buộc" .Values.image.tag để chart báo lỗi sớm thay vì render YAML sai.

Ví dụ cài ingress-nginx và cert-manager bằng Helm: k8s-ingress-cert-manager. Khái niệm object: Kubernetes core concepts.