在Helm3中,推送和拉取Chart的是通過使用OCI鏡像倉庫來實現的。OCI鏡像倉庫是一個儲存和管理Chart的地方,可以是本地檔案系統、網路伺服器或雲端儲存等。在Helm 3.7及以上版本,推送和拉取Chart的概念已經發生了變化,使用OCI製品的方式來推送和拉取Chart。OCI(Open Container Initiative)製品是一種用於儲存和傳輸容器相關檔案的標準格式。
步驟一:配置企業版執行個體
建立命名空間。
在左側導覽列,選擇執行個體列表。
在執行個體列表頁面單擊目標企業版執行個體。
在企業版執行個體管理頁面選擇 。
在命名空間頁面單擊建立命名空間。
在建立命名空間對話方塊輸入命名空間名稱,設定是否自動建立倉庫和預設倉庫類型,單擊確定。
建立鏡像倉庫。
在企業版執行個體管理頁面選擇 。
在鏡像倉庫單擊建立鏡像倉庫。
在倉庫資訊設定精靈中設定命名空間、倉庫名稱、倉庫類型、鏡像版本、鏡像加速、摘要、描述資訊,單擊下一步。
在代碼源設定精靈中設定代碼源、構建設定、構建規則設定,單擊建立鏡像倉庫。
參數
說明
代碼源
選擇代碼源。
構建設定
代碼變更時自動構建鏡像:當分支有代碼提交後會自動觸發構建規則。
海外源智能加速:構建時會在海外機房構建,構建成功後推送到指定地區。如果您專案的Dockerfile檔案需要從國外網站下載檔案,但是跨境網路不穩定,您可以使用海外源智能加速。
不使用緩衝:每次構建鏡像時會強制重新拉取基礎依賴鏡像,可能會增加構建時間。關閉不使用緩衝,可以加速鏡像的構建時間。
在鏡像倉庫頁面單擊目標鏡像倉庫,您可以在鏡像倉庫管理頁面左側導覽列看到構建,說明鏡像倉庫和原始碼倉庫綁定成功。
配置訪問憑證。
設定固定密碼或者臨時密碼,作為後續鏡像的訪問憑證。以下以設定固定密碼為例:
在企業版執行個體管理頁面選擇 。
在訪問憑證頁面單擊設定固定密碼。
在設定固定密碼對話方塊輸入密碼和確認密碼,單擊確定。
配置存取控制台策略。
開啟公網訪問或者添加指定VPC開啟專用網路訪問,保證後續鏡像的上傳。本文以配置公網的存取控制為例。關於配置專用網路的存取控制的更多資訊,請參見配置專用網路的存取控制。
在企業版執行個體管理頁面選擇 。
在存取控制頁面單擊公網頁簽。
在公網頁簽下,開啟訪問入口,單擊添加公網白名單。
在添加公網白名單對話方塊中,輸入允許訪問的位址區段和備忘資訊,然後單擊確定。
開啟公開匿名拉取開關。(可選)
開啟公開匿名拉取開關後,您可以免登入匿名拉取公開鏡像倉庫。
在頂部功能表列,選擇所需地區。
在左側導覽列,選擇執行個體列表。
在執行個體列表頁面單擊目標企業版執行個體。
在概覽頁面右側執行個體設定地區開啟公開匿名拉取開關。
在提示對話方塊單擊確定。
步驟二:推送和拉取Chart
執行以下命令,開啟Helm3.7及以上版本用戶端實驗特性。
export HELM_EXPERIMENTAL_OCI=1
執行以下命令,登入企業版執行個體。
其中用於登入的使用者名稱為阿里雲帳號名。
說明如果您推送拉取的是公開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
在返回結果中輸入登入密碼。登入密碼為上文設定的固定密碼。
執行以下命令,建立HelloWorld Chart。
helm3 create helloworld
執行以下命令,在本地將Chart目錄製作成壓縮包。
tar -zcvf test.tgz helloworld
推送和拉取Chart。
推送Chart壓縮包至鏡像倉庫。
從鏡像倉庫拉取Chart壓縮包。
執行以下命令,從鏡像倉庫拉取Chart壓縮包。
執行以下命令,在本地解壓Chart壓縮包。
執行以下命令,安裝HelloWorld Chart。
helm install helloworld ./helloworld
說明拉取Chart的地址需要寫到倉庫層級。
helm3 pull oci://<企業版執行個體名稱>-registry.cn-<企業版執行個體所在的地區>.cr.aliyuncs.com/<命名空間名稱>/<鏡像倉庫名稱> --version <鏡像版本>
樣本:
helm3 pull oci://***-registry.cn-hangzhou.cr.aliyuncs.com/test/trem --version helloworld
tar -xzvf helloworld-[鏡像版本號碼].tgz
推送Chart的地址只需寫到命名空間層級.
helm3 push test.tgz oci://<企業版執行個體名稱>-registry.cn-<企業版執行個體所在的地區>.cr.aliyuncs.com/<namespace>
樣本:
helm3 push test.tgz oci://***-registry.cn-hangzhou.cr.aliyuncs.com/test