跳至主要内容

Helm 圖表與應用程式

在本節中,您將學習如何在 Rancher 中管理 Helm 圖表儲存庫和應用程式。

Helm 圖表在 Rancher 中的運作方式​

Rancher 中的 Helm 圖表儲存庫是使用 Apps 進行管理的。

Rancher 使用類似目錄的系統從儲存庫匯入圖表套件,然後使用這些圖表來部署自訂 Kubernetes 應用程式或 Rancher 的工具(例如 Monitoring 或 Istio)。Rancher 工具以預先載入的儲存庫形式提供,並作為獨立的 Helm 圖表部署。任何額外的儲存庫僅會新增到目前的叢集。

目錄、應用程式和 Rancher UI​

在 Rancher v2.4 和更早版本中,可立即部署的應用程式儲存庫稱為「目錄」。這些儲存庫透過 UI 的 Catalogs 區段進行管理。

Rancher v2.5 以新的 Apps & Marketplace 功能取代了先前的目錄系統。

從 Rancher v2.6.5 開始,Apps & Marketplace 功能在 UI 中被命名為 Apps。

版本控制方案​

Rancher 功能圖表的版本控制方案以圖表的主要版本和適用於上游圖表的 +up 註解為中心。

主要版本: 功能圖表的主要版本與 Rancher 的特定次要版本相關聯。當您升級到新的 Rancher 次要版本時,您應該確保所有功能圖表也升級到圖表的正確發行版本線。

基於上游的圖表: 升級時,請確保上游圖表版本與您的 Rancher 版本相容。圖表的 +up 註解指示 Rancher 圖表追蹤的上游版本。例如,Monitoring 的 100.x.x+up16.6.0 追蹤上游 kube-prometheus-stack 16.6.0,並包含一些額外的 Rancher 修補程式。

升級 Rancher 版本時,請勿降級您正在使用的圖表版本。例如,如果您在 Rancher v2.5 中使用的 Monitoring 版本晚於 16.6.0,則不應升級到 100.x.x+up16.6.0。相反地,您應該升級到下一個版本中的適當版本。

預發行版本​

預發行版本遵守 Semantic Versioning 2.0.0 定義的規範。例如,版本為 0.1.3-dev.12ab4f 的 Helm 圖表被視為預發行版本。預發行版本預設不顯示,必須進行設定才能顯示。

若要顯示預發行版本:

  1. 點擊右上角的使用者頭像。
  2. 點擊 Preferences。
  3. 在 Helm Charts 下,選擇 Include Prerelease Versions。

存取圖表​

Charts 頁面包含所有 Rancher、合作夥伴和自訂圖表。您可以透過選擇最左側的下拉選單來篩選圖表:

  • Rancher 工具(例如 Logging 或 Monitoring)列在 Rancher 標籤下。
  • 合作夥伴圖表列在 Partners 標籤下。
  • 自訂圖表列在其各自儲存庫的名稱下。

這三種類型的圖表都以相同的方式部署和管理。

備註

由 Cluster Manager(舊版 Rancher UI 中的全域檢視)管理的應用程式繼續僅由 Cluster Manager 管理,而使用新 UI 中的 Apps 管理的應用程式必須僅由 Apps 管理。

若要存取 Charts 頁面:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其圖表的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Charts。

管理儲存庫​

Repositories 頁面列出您的 Helm 儲存庫。這些包括具有 index.yaml 的傳統 Helm 端點,以及已複製並指向特定分支的 Git 儲存庫。若要使用自訂圖表,請在此處新增您的儲存庫。新增儲存庫後,您可以在 Charts 頁面中存取自訂圖表,這些圖表列在儲存庫名稱下。

若要存取 Repositories 頁面:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Repositories。

新增自訂 Git 儲存庫​

若要新增包含 Helm 圖表或叢集範本定義的自訂 Git 儲存庫:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Repositories。
  4. 點擊 Create。
  5. 選擇目標 Git repository containing Helm chart...。
  6. 您必須輸入名稱和 Git 儲存庫 URL。其他欄位(包括描述)是可選的。如果您不想從儲存庫擁有者設定為預設的分支中提取,請輸入替代分支名稱。通常,預設分支名稱為 main 或 master。
  7. 點擊 Create 以新增儲存庫。

將圖表儲存庫新增到 Rancher 後,它會立即可用。

新增自訂 Helm 圖表儲存庫​

您可以新增自己的 Helm 圖表儲存庫以向 Rancher 提供圖表套件。您可以使用任何 HTTP 伺服器,只要伺服器能夠回應 GET 請求並提供 YAML 檔案和 tar 檔案即可。

有關 Helm 圖表儲存庫的更多資訊,請參閱官方 Helm 文件。

若要將自訂 Helm 圖表儲存庫新增到 Rancher:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Repositories。
  4. 點擊 Create。
  5. 選擇目標 http(s) URL to an index generated by Helm。
  6. 輸入儲存庫名稱和圖表儲存庫的索引 URL 位址。
  7. 點擊 Create 以新增儲存庫。

新增私有 Git/Helm 圖表儲存庫​

您可以使用 SSH 金鑰憑證或 HTTP 基本驗證密鑰(例如使用者名稱和密碼)新增私有 Git 或 Helm 圖表儲存庫。

將私有 CA 新增到儲存庫​

若要將私有 CA 新增到 Helm 圖表儲存庫,您必須將 DER 格式的 CA 憑證的 base64 編碼副本新增到圖表儲存庫的 spec.caBundle field,例如 openssl x509 -outform der -in ca.pem | base64 -w0。Git 型和 HTTP 型儲存庫的操作說明相同:

  1. 點擊 ☰。在左側導航選單的 Explore Cluster 下,選擇一個叢集。
  2. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Repositories。
  3. 找到與您要新增私有 CA 的 Git 型或 HTTP 型儲存庫相關聯的列,然後點擊 ⋮ > Edit YAML。
  4. 設定 caBundle 值,如以下範例所示:
  [...]
spec:
caBundle:
MIIFXzCCA0egAwIBAgIUWNy8WrvSkgNzV0zdWRP79j9cVcEwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQKDAtNeU9yZywgSW5jLjENMAsGA1UEAwwEcm9vdDAeFw0yMTEyMTQwODMyMTdaFw0yNDEwMDMwODMyMT
...
nDxZ/tNXt/WPJr/PgEB3hQdInDWYMg7vGO0Oz00G5kWg0sJ0ZTSoA10ZwdjIdGEeKlj1NlPyAqpQ+uDnmx6DW+zqfYtLnc/g6GuLLVPamraqN+gyU8CHwAWPNjZonFN9Vpg0PIk1I2zuOc4EHifoTAXSpnjfzfyAxCaZsnTptimlPFJJqAMj+FfDArGmr4=
[...]
需要身分驗證的 Helm 圖表儲存庫

Repo.Spec 包含一個 disableSameOriginCheck 值。此值允許您繞過同源檢查,將儲存庫身分驗證資訊作為基本驗證標頭與所有 API 呼叫一起發送。不建議這樣做,但可以作為非標準 Helm 圖表儲存庫情況下的臨時解決方案,例如重新導向到不同來源 URL 的儲存庫。

若要為現有 Helm 圖表儲存庫使用此功能,請按照先前的步驟編輯 YAML。在 YAML 檔案的 spec 部分,新增 disableSameOriginCheck 並將其設定為 true。

[...]
spec:
disableSameOriginCheck: true
[...]

新增自訂 OCI 圖表儲存庫​

Helm v3 引入了將 Helm 圖表作為開放容器計畫 (OCI) 工件儲存在容器登錄檔中。從 Rancher v2.9.0 開始,您可以在 HTTP 型和 Git 型儲存庫旁邊新增基於 OCI 的 Helm 圖表儲存庫。這意味著您可以部署作為 OCI 工件儲存的應用程式。有關更多資訊,請參閱使用 OCI Helm 圖表儲存庫。

Helm 相容性​

僅支援 Helm 3 相容圖表。

重新整理圖表儲存庫​

Refresh 按鈕可用於從 Repositories 頁面上選定的 Helm 圖表儲存庫同步變更。

若要重新整理圖表儲存庫:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Repositories。
  4. 使用 State 欄位旁邊的切換開關來選擇所有儲存庫,或切換指定的圖表儲存庫以同步變更。
  5. 點擊 Refresh。
  6. 每個圖表儲存庫列末尾的 ⋮ 也包含一個 Refresh 選項,可以點擊以重新整理相應的儲存庫。

非離線安裝的 Rancher 在重新整理時會立即反映任何圖表儲存庫變更,一旦動作完成,您將看到更新的儲存庫的 State 欄位從 In Progress 變為 Active。

離線安裝中,Rancher 設定為使用封裝的 Helm 系統圖表副本(useBundledSystemChart=true)時,將僅參考捆綁的 system-chart 儲存庫,無法重新整理或同步。

重新整理間隔​

Rancher v2.10.0 在 ClusterRepo CRD 中新增了 refreshInterval 欄位。預設值為 3600 秒,這意味著 Rancher 每 3600 秒同步一次每個 Helm 儲存庫。

若要修改圖表儲存庫的重新整理間隔:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Repositories。
  4. 找到您要修改的儲存庫,然後點擊 ⋮ > Edit YAML。
  5. 在 Spec 下將 refreshInterval 欄位設定為所需的秒數值。
  6. 點擊 Save。

啟用/停用 Helm 圖表儲存庫​

Rancher v2.10.0 新增了啟用和停用 Helm 儲存庫的功能。Helm 儲存庫預設為啟用。

若要停用圖表儲存庫:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Repositories。
  4. 找到您要停用的儲存庫,然後點擊 ⋮ > Edit YAML。
  5. 在 Spec 下將 Enabled 欄位設定為 false。
  6. 點擊 Save。
  7. 停用儲存庫時,更新會被停用,對 clusterRepo 的新變更不會被套用。

若要啟用圖表儲存庫:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Repositories。
  4. 找到您要停用的儲存庫,然後點擊 ⋮ > Edit YAML。
  5. 在 Spec 下將 Enabled 欄位設定為 true。
  6. 點擊 Save。

部署和升級圖表​

若要安裝和部署圖表:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Charts。
  4. 選擇一個圖表,然後點擊 Install。

Rancher 和合作夥伴圖表可能透過自訂頁面或 questions.yaml 檔案提供額外的設定。然而,所有圖表安裝都可以修改 values.yaml 和其他基本設定。點擊 Install 後,會部署一個 Helm 操作作業,並顯示該作業的控制台。

若要檢視所有最近的變更,請在左側導航選單中點擊 Apps > Recent Operations。從那裡您可以檢視呼叫、條件、事件和日誌。

安裝圖表後,您可以在左側導航選單中點擊 Apps > Installed Apps 來檢視它。您可以升級或刪除安裝,並查看更多詳細資訊。升級使用與初始安裝期間看到的相同表單和值。

大多數 Rancher 工具在 Apps 區段下方的工具列中都有額外的頁面,以幫助管理和使用這些功能。這些頁面包括儀表板的連結、輕鬆新增自訂資源的表單以及額外資訊。

警告

如果您正在使用 Customize Helm options before upgrade 升級圖表,並且您的圖表包含不可變欄位,使用 --force 選項可能會導致錯誤。這是因為 Kubernetes 中的某些物件在建立後無法更改。若要防止此錯誤:

  • 使用預設升級選項(即不使用 --force)。
  • 卸載現有圖表並安裝升級的圖表。
  • 在執行強制升級之前,從叢集中刪除具有不可變欄位的資源。

舊版應用程式​

在 Apps > Installed Apps 頁面上,舊版應用程式不提供升級按鈕。

如果您想升級已安裝的舊版應用程式,必須開啟舊版功能旗標。如果您在升級 Rancher 之前已經執行舊版應用程式,則此旗標會自動開啟。

  1. 啟用舊版功能旗標(如果尚未啟用)。
  2. 點擊 ☰ > Cluster Management。
  3. 找到您要存取其應用程式的叢集名稱。在叢集列的末尾點擊 Explore。
  4. 點擊 Legacy > Project > Apps。

如果您在 Legacy > Project 下看不到 Apps,請點擊頂部導航中的專案/命名空間搜尋列,並從下拉選單中選擇相關專案。

若要升級舊版多叢集應用程式:

  1. 點擊 ☰。
  2. 在 Legacy Apps 下,點擊 Multi-cluster Apps。

圖表特定資訊​

sriov 圖表棄用和遷移​

來自 Rancher Charts 儲存庫的 sriov(SR-IOV 網路操作員)圖表已棄用,並將在 Rancher v2.10 中移除。請改為遷移到來自 SUSE Edge 儲存庫 (https://github.com/suse-edge/charts) 的 sriov-network-operator 圖表。

若要遷移,請按照以下步驟操作:

  1. 按照新增自訂 Git 儲存庫中的步驟將 SUSE Edge 儲存庫新增到您的叢集。
  2. 在 Git Repo URL 欄位中,輸入 https://github.com/suse-edge/charts。
  3. 點擊 Create。
  4. 在 Cluster Dashboard 的左側導航選單中,點擊 Apps > Charts。
  5. 找到 sriov-network-operator 圖表並點擊它。
  6. 點擊 Install。
  7. 在 Name 欄位中,輸入您用於現有 sriov 圖表安裝的相同名稱。
  8. 點擊 Next。
  9. 點擊 Install。

結果: Rancher 會重新導向到 Installed Apps 頁面,您的現有安裝會進入 Updating 狀態。當它進入 Deployed 狀態時,遷移完成。

限制​

  • 無法使用 Rancher CLI 安裝 Dashboard 應用程式或 Rancher 功能圖表。

  • 在確定 Apps > Installed Apps 頁面上 Upgradable 欄顯示的最新版本時,Rancher 不僅考慮來自安裝圖表的儲存庫的 Helm 圖表版本,還考慮來自叢集上所有儲存庫的 Helm 圖表版本。

    例如,假設您從儲存庫 A 安裝了 cert-manager v1.13.0,其中 v1.14.0 現在是可用的最新版本。在這種情況下,您期望 Upgradable 顯示 v1.14.0。但是,如果叢集還可以存取儲存庫 B,其中提供了 cert-manager 的 v1.15.0,那麼即使原始安裝使用了儲存庫 A,Upgradable 也會顯示 v1.15.0。