Helm 緻力于成為 Kubernetes 的包管理工具,可以友善地發現、共享和建構 Kubernetes 應用,它包含幾個基本概念:
Chart:一個 Helm 包,其中包含了運作一個應用所需要的鏡像、依賴和資源定義等,還可能包含 Kubernetes 叢集中的服務定義,類似 Homebrew 中的 formula,APT 的 dpkg 或者 Yum 的 rpm 檔案;
Release: 在 Kubernetes 叢集上運作的 Chart 的一個執行個體。在同一個叢集上,一個 Chart 可以安裝很多次。每次安裝都會建立一個新的 release。例如一個 MySQL Chart,如果想在伺服器上運作兩個資料庫,就可以把這個 Chart 安裝兩次。每次安裝都會生成自己的 Release,會有自己的 Release 名稱;
Repository:用于釋出和存儲 Chart 的倉庫
Helm 元件
Helm 采用用戶端/伺服器架構,有如下元件組成:
helm : 用戶端,管理本地的 Chart 倉庫,管理 Chart, 與 Tiller 伺服器互動,發送 Chart, 執行個體安裝,查詢,解除安裝等操作
Tiller : 服務端,接收 helm 發來的 Charts 與 Config,合并生成 release
Repository : Chart 倉庫,Helm用戶端通過HTTP協定來通路倉庫中Chart的索引檔案和壓縮包
RBAC配置檔案示例:
https://github.com/helm/helm/blob/master/docs/rbac.md
官方可用的Chart清單:
https://hub.kubeapps.com
helm常用指令:
release管理:
install
delete
upgrade/rollback
list
history:release的曆史資訊
status 擷取release狀态資訊
chart管理:
create
inspect
package
verify
管理chart依賴