全部產品
Search
文件中心

Container Registry:使用Helm 3.7及以上版本推送和拉取Chart

更新時間:Jun 30, 2024

在Helm3中,推送和拉取Chart的是通過使用OCI鏡像倉庫來實現的。OCI鏡像倉庫是一個儲存和管理Chart的地方,可以是本地檔案系統、網路伺服器或雲端儲存等。在Helm 3.7及以上版本,推送和拉取Chart的概念已經發生了變化,使用OCI製品的方式來推送和拉取Chart。OCI(Open Container Initiative)製品是一種用於儲存和傳輸容器相關檔案的標準格式。

步驟一:配置企業版執行個體

  1. 建立命名空間。

    1. 登入Container Registry控制台

    2. 在左側導覽列,選擇執行個體列表

    3. 執行個體列表頁面單擊目標企業版執行個體。

    4. 在企業版執行個體管理頁面選擇鏡像倉庫 > 命名空間

    5. 命名空間頁面單擊建立命名空間

    6. 建立命名空間對話方塊輸入命名空間名稱,設定是否自動建立倉庫預設倉庫類型,單擊確定

  2. 建立鏡像倉庫。

    1. 在企業版執行個體管理頁面選擇倉庫管理 > 鏡像倉庫

    2. 鏡像倉庫單擊建立鏡像倉庫

    3. 倉庫資訊設定精靈中設定命名空間倉庫名稱倉庫類型鏡像版本鏡像加速摘要描述資訊,單擊下一步

    4. 代碼源設定精靈中設定代碼源構建設定構建規則設定,單擊建立鏡像倉庫

      參數

      說明

      代碼源

      選擇代碼源。

      構建設定

      • 代碼變更時自動構建鏡像:當分支有代碼提交後會自動觸發構建規則。

      • 海外源智能加速:構建時會在海外機房構建,構建成功後推送到指定地區。如果您專案的Dockerfile檔案需要從國外網站下載檔案,但是跨境網路不穩定,您可以使用海外源智能加速

      • 不使用緩衝:每次構建鏡像時會強制重新拉取基礎依賴鏡像,可能會增加構建時間。關閉不使用緩衝,可以加速鏡像的構建時間。

      鏡像倉庫頁面單擊目標鏡像倉庫,您可以在鏡像倉庫管理頁面左側導覽列看到構建,說明鏡像倉庫和原始碼倉庫綁定成功。

  3. 配置訪問憑證。

    設定固定密碼或者臨時密碼,作為後續鏡像的訪問憑證。以下以設定固定密碼為例:

    1. 在企業版執行個體管理頁面選擇執行個體管理 > 訪問憑證

    2. 訪問憑證頁面單擊設定固定密碼

    3. 設定固定密碼對話方塊輸入密碼確認密碼,單擊確定

  4. 配置存取控制台策略。

    開啟公網訪問或者添加指定VPC開啟專用網路訪問,保證後續鏡像的上傳。本文以配置公網的存取控制為例。關於配置專用網路的存取控制的更多資訊,請參見配置專用網路的存取控制

    1. 在企業版執行個體管理頁面選擇倉庫管理 > 存取控制

    2. 存取控制頁面單擊公網頁簽。

    3. 公網頁簽下,開啟訪問入口,單擊添加公網白名單

    4. 添加公網白名單對話方塊中,輸入允許訪問的位址區段和備忘資訊,然後單擊確定

  5. 開啟公開匿名拉取開關。(可選)

    開啟公開匿名拉取開關後,您可以免登入匿名拉取公開鏡像倉庫。

    1. 登入Container Registry控制台

    2. 在頂部功能表列,選擇所需地區。

    3. 在左側導覽列,選擇執行個體列表

    4. 執行個體列表頁面單擊目標企業版執行個體。

    5. 概覽頁面右側執行個體設定地區開啟公開匿名拉取開關。

    6. 提示對話方塊單擊確定

步驟二:推送和拉取Chart

  1. 執行以下命令,開啟Helm3.7及以上版本用戶端實驗特性。

    export HELM_EXPERIMENTAL_OCI=1
  2. 執行以下命令,登入企業版執行個體。

    其中用於登入的使用者名稱為阿里雲帳號名。

    說明

    如果您推送拉取的是公開Chart倉庫,您可以在容器鏡像控制台概覽頁面開啟公開匿名拉取開關,然後您可以免登入匿名拉取公開Chart倉庫。

    helm3 registry login -u <鏡像倉庫登入名稱> <企業版執行個體名稱>-registry.cn-<企業版執行個體所在的地區>.cr.aliyuncs.com

    樣本:

    helm3 registry login -u acr_test_***@test.aliyunid.com ***-registry.cn-hangzhou.cr.aliyuncs.com

    在返回結果中輸入登入密碼。登入密碼為上文設定的固定密碼。

  3. 執行以下命令,建立HelloWorld Chart。

    helm3 create helloworld
  4. 執行以下命令,在本地將Chart目錄製作成壓縮包。

    tar -zcvf test.tgz helloworld
  5. 推送和拉取Chart。

    • 推送Chart壓縮包至鏡像倉庫。

    • 說明

      推送Chart的地址只需寫到命名空間層級.

      helm3 push test.tgz oci://<企業版執行個體名稱>-registry.cn-<企業版執行個體所在的地區>.cr.aliyuncs.com/<namespace>

      樣本:

      helm3 push test.tgz oci://***-registry.cn-hangzhou.cr.aliyuncs.com/test
    • 從鏡像倉庫拉取Chart壓縮包。

      1. 執行以下命令,從鏡像倉庫拉取Chart壓縮包。

      2. 說明

        拉取Chart的地址需要寫到倉庫層級。

        helm3 pull oci://<企業版執行個體名稱>-registry.cn-<企業版執行個體所在的地區>.cr.aliyuncs.com/<命名空間名稱>/<鏡像倉庫名稱> --version <鏡像版本>

        樣本:

        helm3 pull oci://***-registry.cn-hangzhou.cr.aliyuncs.com/test/trem --version helloworld
      3. 執行以下命令,在本地解壓Chart壓縮包。

      4. tar -xzvf helloworld-[鏡像版本號碼].tgz
      5. 執行以下命令,安裝HelloWorld Chart。

         helm install helloworld ./helloworld