跳至主要内容

使用基於 OCI 的 Helm 圖表儲存庫

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

新增基於 OCI 的 Helm 圖表儲存庫​

若要透過 Rancher UI 新增基於 OCI 的 Helm 圖表儲存庫:

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在左側導航列中,選擇 Apps > Repositories。
  4. 點擊 Create。
  5. 為登錄檔輸入 Name。選擇 OCI Repository 作為目標。
  6. 為登錄檔輸入 OCI Repository Host URL。登錄檔端點除了 OCI Helm Chart 工件之外不得包含任何其他內容。這些工件都應該有唯一的名稱。如果您嘗試新增包含任何其他類型檔案或工件的端點,OCI 儲存庫將不會被新增。
備註

您可以使用 OCI URL 欄位來微調登錄檔中有多少圖表可供在 Rancher 上安裝。更通用的端點會指向更多圖表,如以下範例所示:

  • oci://<registry-host>:登錄檔中的每個圖表都可供安裝,無論命名空間或標籤如何。
  • oci://<registry-host>/<namespace>:登錄檔內指定命名空間中的每個圖表都可供安裝。
  • oci://<registry-host>/<namespace>/<chart-name>:僅指定的圖表以及該圖表的任何相關標籤或版本可供安裝。
  • oci://<registry-host>/<namespace>/<chart-name>:<tag>:僅具有指定標籤的圖表可供安裝。
  1. 設定身分驗證。從身分驗證欄位中選擇 Basicauth 並根據需要輸入使用者名稱和密碼。或者,建立或選擇 Authentication 密鑰。請參閱身分驗證以獲取完整說明。

  2. (可選)在 CA Cert Bundle 欄位中輸入 base64 編碼的 DER 憑證。此欄位適用於您擁有私有 OCI 型 Helm 圖表儲存庫並需要 Rancher 信任其憑證的情況。

  3. (可選)若要允許不執行 SSL 檢查的不安全連線,請選擇 Skip TLS Verification。若要強制 Rancher 使用 HTTP 而不是 HTTPS 向儲存庫發送請求,請選擇 Insecure Plain Http。

  4. (可選)如果您的儲存庫具有速率限制策略,並且可能以狀態碼 429 Too Many Requests 回應,您可能需要填寫 Exponential Back Off 下的欄位:

    • Min Wait:Rancher 在重試之前應該等待的最小持續時間(以秒為單位)。預設為 1 秒。
    • Max Wait:Rancher 在重試之前應該等待的最大持續時間(以秒為單位)。預設為 5 秒。
    • Max Number of Retries:預設為 5 次重試。

    設定這些值後,Rancher 會根據最小和最大等待值錯開請求來回應 429 狀態碼。重試之間的等待時間會呈指數增長,直到 Rancher 發送了設定的最大重試次數。請參閱速率限制以獲取更多詳細資訊。

  5. 新增任何標籤和註解。

  6. 點擊 Create。

OCI 儲存庫可能需要一些時間才能啟用。如果 OCI 端點包含多個命名空間,這一點尤其正確。

基於 OCI 的 Helm 圖表儲存庫的身分驗證​

Rancher 支援 OCI 登錄檔的 BasicAuth。您必須建立一個 BasicAuth Kubernetes 密鑰。您也可以透過 Rancher UI 建立密鑰。

與基於 OCI 的 Helm 儲存庫連結的 CRD 是 ClusterRepo。

檢視基於 OCI 的 Helm 圖表儲存庫中的 Helm 圖表​

若要在基於 OCI 的 Helm 圖表儲存庫達到 Active 狀態後檢視其中的 Helm 圖表:

  1. 點擊 ☰。在左側導航選單的 Explore Cluster 下,選擇一個叢集。
  2. 點擊 Apps > Charts。
  3. 從下拉選單中選擇基於 OCI 的 Helm 圖表儲存庫。

重新整理基於 OCI 的 Helm 圖表儲存庫​

Rancher 每 6 小時自動重新整理基於 OCI 的 Helm 圖表儲存庫。

如果您需要立即更新,可以執行手動重新整理。

更新基於 OCI 的 Helm 圖表儲存庫設定​

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在左側導航列中,選擇 Apps > Repositories。
  4. 找到與基於 OCI 的 Helm 圖表儲存庫相關聯的列,然後點擊 ⋮。
  5. 從子選單中,選擇 Edit Config。

刪除基於 OCI 的 Helm 圖表儲存庫​

  1. 點擊 ☰ > Cluster Management。
  2. 找到您要存取其儲存庫的叢集名稱。在叢集列的末尾點擊 Explore。
  3. 在左側導航列中,選擇 Apps > Repositories。
  4. 選擇與基於 OCI 的 Helm 圖表儲存庫相關聯的列,然後點擊 Delete。

Rancher 中基於 OCI 的 Helm 圖表儲存庫的大小限制​

出於安全考慮,您可以透過基於 OCI 的儲存庫部署的 Helm 圖表大小以及您可以用來描述單個 OCI 端點內的 Helm 圖表的中繼資料量都有限制。

Rancher 可以部署最大 20 MB 的 OCI Helm 圖表。

基於 OCI 的 Helm 圖表儲存庫的速率限制​

不同的 OCI 登錄檔以不同的方式實作速率限制。

大多數伺服器回傳一個 Retry-After 標頭,指示在解除速率限制之前需要等待多長時間。

Docker Hub 在完成所有分配的請求時回傳 429 狀態碼。它還回傳一個 RateLimit-Remaining 標頭,描述速率限制策略。

Rancher 目前檢查 Retry-After 標頭。它還處理 Docker Hub 風格的回應(狀態碼 429 和 RateLimit-Remaining 標頭),並在發出新請求之前自動等待。在處理 Retry-After 或 Docker Hub 風格的回應時,Rancher 會忽略 ExponentialBackOff 值。

如果您的基於 OCI 的 Helm 圖表儲存庫未實作 Retry-After 或 RateLimit-Remaining 標頭,並且您認為可能在某個時候被速率限制,請在新增儲存庫時填寫 Exponential Back Off 下的欄位。

例如,如果您的基於 OCI 的 Helm 圖表儲存庫未回傳 Retry-After 標頭,但您知道伺服器在 24 小時內允許 50 個請求,您可以為 Rancher 提供 Min Wait 值 86400 秒、Max Wait 值 90000 秒以及 Max Number of Retries 值 1。然後,如果 Rancher 被伺服器速率限制,Rancher 將等待 24 小時後再試一次。該請求應該會成功,因為 Rancher 在前 24 小時內沒有發送任何其他請求。

疑難排解基於 OCI 的 Helm 登錄檔​

  • 若要增強日誌資訊,請在部署 Rancher 時啟用除錯選項。

  • 如果儲存庫內容與 Rancher 之間存在任何差異,您應該首先重新整理叢集儲存庫。如果差異持續存在,請從 Rancher 中刪除基於 OCI 的 Helm 圖表儲存庫並重新新增。刪除儲存庫不會刪除已安裝的任何 Helm 圖表。

  • 透過基於 OCI 的 Helm 圖表儲存庫安裝的應用程式會受到 Rancher 顯示可升級版本資訊方式的已知問題的影響。請參閱 Helm 圖表與應用程式的限制部分以獲取更多詳細資訊。