產品說明
Helm 是一款專為 Kubernetes 設計的開源套件管理器。在 K8s 中部屬應用程式通常需要撰寫大量冗長且複雜的 YAML 檔(Deployment, Service, Ingress 等),而 Helm 透過 Charts 的概念,將這些資源打包成一個可重複使用的範本。
透過 Helm,你可以使用簡單的指令完成複雜服務的部署。它支援強大的「變數替換」功能,讓你同一套 Chart 只要透過修改 values.yaml,就能輕鬆部署到開發(Dev)、測試(Staging)與正式(Prod)環境。此外,Helm 也提供了完善的版本控制,支援「一鍵回滾」,大幅降低了雲端維運的風險。
核心特色:
- Chart 封裝機制:將 K8s 資源打包,實現應用程式的版本化管理。
- 參數化配置:透過
values.yaml動態注入參數,無需手動修改每個 YAML 檔。 - 版本回滾 (Rollback):紀錄每次部署的歷史(Release),出錯時可秒速恢復至舊版。
- 龐大的生態系:透過 Artifact Hub 可以找到數千個預先封裝好的知名軟體(如 MySQL, Nginx, Jenkins)。
常用指令
Helm 3 移除了伺服器端的 Tiller 元件,操作變得更加安全且簡潔:
基礎操作流程
# 加入官方或第三方的 Chart 倉庫
helm repo add bitnami [https://charts.bitnami.com/bitnami](https://charts.bitnami.com/bitnami)
# 搜尋倉庫中的軟體
helm search repo mysql
# 安裝一個應用程式 (Release)
helm install my-db bitnami/mysql
# 查看目前叢集中已部署的所有 Release
helm list
# 升級應用程式 (例如更改了設定或映像檔版本)
helm upgrade my-db bitnami/mysql -f custom-values.yaml
# 發生錯誤時,回滾至前一個版本
helm rollback my-db 1
| 常用指令 | 功能說明 | 使用時機 |
|---|---|---|
| helm create | 建立一個新的 Chart 範本 | 開始開發自定義 K8s 應用程式包時 |
| helm template | 本地渲染 YAML 預覽 | 在正式部屬前檢查輸出結果是否正確時 |
| helm status | 查看特定 Release 的詳情 | 確認 K8s 資源是否已成功啟動時 |
| helm uninstall | 移除已安裝的應用程式 | 釋放叢集資源並刪除關聯物件時 |
| helm package | 將 Chart 資料夾打包成 .tgz | 準備發佈或分享你的應用程式包時 |
進階技巧
Values 優先權:你可以同時使用多個 values 檔案,例如
helm install -f base.yaml -f prod.yaml,後面的設定會覆蓋前面的,方便管理不同環境的差異。Dry Run 測試:執行
helm install --debug --dry-run可以讓你看到渲染後的 YAML 內容,而不會真的在叢集中建立資源,是除錯的最佳手段。依賴管理:在
Chart.yaml中定義dependencies,可以讓 Helm 自動幫你下載該應用程式所需的所有基礎設施(如資料庫)。
操作介面
![]()




