在前一篇文章 Day 20:StorageClass 與動態供應 中,我們探討了如何透過自動化的方式來管理 Kubernetes 儲存資源。當應用越來越多、組件越來越複雜時,光靠手寫與維護大量 YAML 檔案會變得低效且容易出錯。
這時候,我們需要一個「套件管理工具」來幫助我們更方便地部署與維護應用 —— Helm。
Helm 讓 Kubernetes 的應用管理變得像安裝套件一樣簡單,並且支援版本控制、回滾與參數化設定,是 DevOps 工程師必備的工具之一。
values.yaml
或 --set
傳入,讓部署具備彈性。curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install my-nginx bitnami/nginx
helm list
helm upgrade my-nginx bitnami/nginx --set service.type=NodePort
helm rollback my-nginx 1
helm create my-api
目錄結構:
my-api/
├── charts/
├── templates/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── _helpers.tpl
├── values.yaml
└── Chart.yaml
replicaCount: 2
image:
repository: my-dockerhub-user/my-api
tag: "1.0.0"
service:
type: ClusterIP
port: 3000
helm install my-api ./my-api
kubectl get pods
kubectl get svc
修改 values.yaml 的 tag: "1.0.1" 後執行:
helm upgrade my-api ./my-api
Helm 讓 Kubernetes 的應用管理不再只是「拼裝 YAML 零件」,而是像「安裝套件」一樣高效有序。
實務上,團隊常會針對不同環境(dev/staging/prod)建立不同的 values.yaml,再搭配 CI/CD 流程自動化部署。這樣不僅提升了生產力,也讓部署更具一致性與可控性。
下一篇我們將延伸至 資源限制與 QoS,探討如何確保應用在 Helm 部署後能合理運行,避免「搶資源」的情況發生。