使用Helm 3.7及以上版本推送和拉取Chart
在Helm3中,推送和拉取Chart的是通過使用OCI鏡像倉庫來實(shí)現(xiàn)的。OCI鏡像倉庫是一個(gè)存儲(chǔ)和管理Chart的地方,可以是本地文件系統(tǒng)、網(wǎng)絡(luò)服務(wù)器或云存儲(chǔ)等。在Helm 3.7及以上版本,推送和拉取Chart的概念已經(jīng)發(fā)生了變化,使用OCI制品的方式來推送和拉取Chart。OCI(Open Container Initiative)制品是一種用于存儲(chǔ)和傳輸容器相關(guān)文件的標(biāo)準(zhǔn)格式。
步驟一:配置企業(yè)版實(shí)例
創(chuàng)建命名空間。
在左側(cè)導(dǎo)航欄,選擇實(shí)例列表。
在實(shí)例列表頁面單擊目標(biāo)企業(yè)版實(shí)例。
在企業(yè)版實(shí)例管理頁面選擇 。
在命名空間頁面單擊創(chuàng)建命名空間。
在創(chuàng)建命名空間對(duì)話框輸入命名空間名稱,設(shè)置是否自動(dòng)創(chuàng)建倉庫和默認(rèn)倉庫類型,單擊確定。
創(chuàng)建鏡像倉庫。
在企業(yè)版實(shí)例管理頁面選擇 。
在鏡像倉庫單擊創(chuàng)建鏡像倉庫。
在倉庫信息配置向?qū)е性O(shè)置命名空間、倉庫名稱、倉庫類型、鏡像版本、鏡像加速、摘要、描述信息,單擊下一步。
在代碼源配置向?qū)е性O(shè)置代碼源、構(gòu)建設(shè)置、構(gòu)建規(guī)則設(shè)置,單擊創(chuàng)建鏡像倉庫。
參數(shù)
說明
代碼源
選擇代碼源。
構(gòu)建設(shè)置
代碼變更時(shí)自動(dòng)構(gòu)建鏡像:當(dāng)分支有代碼提交后會(huì)自動(dòng)觸發(fā)構(gòu)建規(guī)則。
海外源智能加速:構(gòu)建時(shí)會(huì)在海外機(jī)房構(gòu)建,構(gòu)建成功后推送到指定地域。如果您項(xiàng)目的Dockerfile文件需要從國外站點(diǎn)下載文件,但是跨境網(wǎng)絡(luò)不穩(wěn)定,您可以使用海外源智能加速。
不使用緩存:每次構(gòu)建鏡像時(shí)會(huì)強(qiáng)制重新拉取基礎(chǔ)依賴鏡像,可能會(huì)增加構(gòu)建時(shí)間。關(guān)閉不使用緩存,可以加速鏡像的構(gòu)建時(shí)間。
在鏡像倉庫頁面單擊目標(biāo)鏡像倉庫,您可以在鏡像倉庫管理頁面左側(cè)導(dǎo)航欄看到構(gòu)建,說明鏡像倉庫和源代碼倉庫綁定成功。
配置訪問憑證。
設(shè)置固定密碼或者臨時(shí)密碼,作為后續(xù)鏡像的訪問憑證。以下以設(shè)置固定密碼為例:
在企業(yè)版實(shí)例管理頁面選擇 。
在訪問憑證頁面單擊設(shè)置固定密碼。
在設(shè)置固定密碼對(duì)話框輸入密碼和確認(rèn)密碼,單擊確定。
配置訪問控制臺(tái)策略。
開啟公網(wǎng)訪問或者添加指定VPC打開專有網(wǎng)絡(luò)訪問,保證后續(xù)鏡像的上傳。本文以配置公網(wǎng)的訪問控制為例。關(guān)于配置專有網(wǎng)絡(luò)的訪問控制的更多信息,請參見配置專有網(wǎng)絡(luò)的訪問控制。
在企業(yè)版實(shí)例管理頁面選擇 。
在訪問控制頁面單擊公網(wǎng)頁簽。
在公網(wǎng)頁簽下,打開訪問入口,單擊添加公網(wǎng)白名單。
在添加公網(wǎng)白名單對(duì)話框中,輸入允許訪問的地址段和備注信息,然后單擊確定。
打開公開匿名拉取開關(guān)。(可選)
打開公開匿名拉取開關(guān)后,您可以免登錄匿名拉取公開鏡像倉庫。
在頂部菜單欄,選擇所需地域。
在左側(cè)導(dǎo)航欄,選擇實(shí)例列表。
在實(shí)例列表頁面單擊目標(biāo)企業(yè)版實(shí)例。
在概覽頁面右側(cè)實(shí)例設(shè)置區(qū)域打開公開匿名拉取開關(guān)。
在提示對(duì)話框單擊確定。
步驟二:推送和拉取Chart
執(zhí)行以下命令,開啟Helm3.7及以上版本客戶端實(shí)驗(yàn)特性。
export HELM_EXPERIMENTAL_OCI=1
執(zhí)行以下命令,登錄企業(yè)版實(shí)例。
其中用于登錄的用戶名為阿里云賬號(hào)名。
說明如果您推送拉取的是公開Chart倉庫,您可以在容器鏡像控制臺(tái)概覽頁面打開公開匿名拉取開關(guān),然后您可以免登錄匿名拉取公開Chart倉庫。
helm3 registry login -u <鏡像倉庫登錄名> <企業(yè)版實(shí)例名稱>-registry.cn-<企業(yè)版實(shí)例所在的地域>.cr.aliyuncs.com
示例:
helm3 registry login -u acr_test_***@test.aliyunid.com ***-registry.cn-hangzhou.cr.aliyuncs.com
在返回結(jié)果中輸入登錄密碼。登錄密碼為上文設(shè)置的固定密碼。
執(zhí)行以下命令,創(chuàng)建HelloWorld Chart。
helm3 create helloworld
執(zhí)行以下命令,在本地將Chart目錄制作成壓縮包。
tar -zcvf test.tgz helloworld
推送和拉取Chart。
推送Chart壓縮包至鏡像倉庫。
從鏡像倉庫拉取Chart壓縮包。
執(zhí)行以下命令,從鏡像倉庫拉取Chart壓縮包。
執(zhí)行以下命令,在本地解壓Chart壓縮包。
執(zhí)行以下命令,安裝HelloWorld Chart。
helm install helloworld ./helloworld
說明拉取Chart的地址需要寫到倉庫級(jí)別。
helm3 pull oci://<企業(yè)版實(shí)例名稱>-registry.cn-<企業(yè)版實(shí)例所在的地域>.cr.aliyuncs.com/<命名空間名稱>/<鏡像倉庫名稱> --version <鏡像版本>
示例:
helm3 pull oci://***-registry.cn-hangzhou.cr.aliyuncs.com/test/trem --version helloworld
tar -xzvf helloworld-[鏡像版本號(hào)].tgz
推送Chart的地址只需寫到命名空間級(jí)別.
helm3 push test.tgz oci://<企業(yè)版實(shí)例名稱>-registry.cn-<企業(yè)版實(shí)例所在的地域>.cr.aliyuncs.com/<namespace>
示例:
helm3 push test.tgz oci://***-registry.cn-hangzhou.cr.aliyuncs.com/test