詞彙表

圖表

一個 Helm 套件,其中包含足夠的資訊,可將一組 Kubernetes 資源安裝到 Kubernetes 叢集中。

圖表包含 Chart.yaml 檔案,以及範本、預設值 (values.yaml) 和相依性。

圖表是在明確定義的目錄結構中開發的,然後打包成稱為「圖表封存」的封存格式。

圖表封存

「圖表封存」是一個經過 tar 和 gzip 壓縮(以及選擇性簽署)的圖表。

圖表相依性(子圖表)

圖表可能會依賴其他圖表。相依性可能以兩種方式發生

  • 軟相依性:圖表可能僅在叢集中安裝另一個圖表時才能正常運作。Helm 不提供此情況的工具。在這種情況下,可以單獨管理相依性。
  • 硬相依性:圖表可能包含(在其 charts/ 目錄內)它所依賴的另一個圖表。在這種情況下,安裝圖表將會安裝其所有相依性。在這種情況下,圖表及其相依性會作為集合進行管理。

當圖表打包(透過 helm package)時,其所有硬相依性都會與其捆綁在一起。

圖表版本

圖表會根據 SemVer 2 規範 進行版本控制。每個圖表都需要版本號碼。

Chart.yaml

圖表的資訊儲存在名為 Chart.yaml 的特殊檔案中。每個圖表都必須有這個檔案。

Helm(以及 helm)

Helm 是 Kubernetes 的套件管理器。如同作業系統套件管理器可以輕鬆地在作業系統上安裝工具,Helm 可以輕鬆地將應用程式和資源安裝到 Kubernetes 叢集中。

雖然「Helm」是專案的名稱,但命令列客戶端也稱為 helm。依慣例,在談論專案時,「Helm」會大寫。在談論客戶端時,「helm」會小寫。

Helm 設定檔(XDG)

Helm 將其設定檔儲存在 XDG 目錄中。這些目錄會在第一次執行 helm 時建立。

Kube 設定(KUBECONFIG)

Helm 客戶端透過使用「Kube 設定」檔案格式中的檔案來了解 Kubernetes 叢集。預設情況下,Helm 會嘗試在 kubectl 建立它的位置 ($HOME/.kube/config) 尋找此檔案。

Lint(程式碼檢查)

「程式碼檢查」圖表是驗證它是否遵循 Helm 圖表標準的慣例和要求。Helm 提供了執行此操作的工具,尤其是 helm lint 命令。

出處(出處檔案)

Helm 圖表可能附帶「出處檔案」,其中提供圖表的來源和內容資訊。

出處檔案是 Helm 安全性的一部分。出處包含圖表封存檔案的加密雜湊、Chart.yaml 資料和簽名區塊(OpenPGP「clearsign」區塊)。與金鑰鏈結合使用時,這為圖表使用者提供了以下功能:

  • 驗證圖表是否由受信任方簽署
  • 驗證圖表檔案是否未遭竄改
  • 驗證圖表中繼資料 (Chart.yaml) 的內容
  • 快速將圖表與其出處資料進行比對

出處檔案的副檔名為 .prov,可以從圖表倉庫伺服器或任何其他 HTTP 伺服器提供。

發布

當圖表安裝時,Helm 程式庫會建立「發布」來追蹤該安裝。

單一圖表可以多次安裝到同一個叢集中,並建立許多不同的發布。例如,可以透過使用不同的發布名稱執行 helm install 三次來安裝三個 PostgreSQL 資料庫。

發布號碼(發布版本)

單一發布可以多次更新。會使用循序計數器來追蹤發布的變更。第一次 helm install 之後,發布的「發布號碼」將為 1。每次升級或回復發布時,發布號碼都會遞增。

回復

可以將發布升級到較新的圖表或設定。但由於會儲存發布歷史記錄,因此也可以將發布「回復」到先前的發布號碼。這是透過 helm rollback 命令完成的。

重要的是,回復的發布將會收到新的發布號碼。

操作發布號碼
安裝發布 1
升級發布 2
升級發布 3
回復 1發布 4(但執行與發布 1 相同的設定)

上表說明了如何在安裝、升級和回復中遞增發布號碼。

Helm 程式庫(或 SDK)

Helm 程式庫(或 SDK)是指直接與 Kubernetes API 伺服器互動以安裝、升級、查詢和移除 Kubernetes 資源的 Go 程式碼。可以將其匯入專案中,以將 Helm 用作客戶端程式庫,而不是 CLI。

倉庫(Repo、圖表倉庫)

Helm 圖表可以儲存在稱為「圖表倉庫」(「倉庫」或簡稱「Repo」)的專用 HTTP 伺服器上。

圖表倉庫伺服器是一個簡單的 HTTP 伺服器,可以提供描述一批圖表的 index.yaml 檔案,並提供每個圖表的下載位置資訊。(許多圖表倉庫會提供圖表以及 index.yaml 檔案。)

Helm 客戶端可以指向零個或多個圖表倉庫。預設情況下,Helm 客戶端未設定任何圖表倉庫。可以隨時使用 helm repo add 命令新增圖表倉庫。

圖表註冊表(基於 OCI 的註冊表)

Helm 圖表註冊表是一個 基於 OCI 的 儲存和發佈系統,用於託管和分享 Helm 圖表套件。如需詳細資訊,請參閱 Helm 文件中的註冊表

值(值檔案、values.yaml)

值提供了一種使用您自己的資訊覆寫範本預設值的方法。

Helm 圖表是「參數化的」,這表示圖表開發者可以公開可在安裝時覆寫的設定。例如,圖表可能會公開 username 欄位,允許設定服務的使用者名稱。

這些公開的變數在 Helm 術語中稱為「值」。

可以在 helm installhelm upgrade 操作期間設定值,方法是直接傳入值,或使用 values.yaml 檔案。