Helm cm-push插件是Helm的一個插件,提供了推送和拉取Chart的功能。Chart是Helm的打包格式,包含了K8s應用的描述信息。要使用Helm cm-push插件推送Chart到遠程Chart倉庫,首先需要將插件安裝到本地??梢允褂妹?code data-tag="code" class="code blog-code" code-type="xCode">helm plugin install來安裝插件。安裝完成后,可以使用helm push
命令來推送Chart。
以HTTP協議使用Helm-push插件推送和拉取Chart功能,需要您提交工單添加白名單后才能使用。
步驟一:配置企業版實例
創建命名空間。
登錄容器鏡像服務控制臺。
在左側導航欄,選擇實例列表。
在實例列表頁面單擊目標企業版實例。
在企業版實例管理頁面選擇 。
在命名空間頁面單擊創建命名空間。
在創建命名空間對話框輸入命名空間名稱,設置是否自動創建倉庫和默認倉庫類型,單擊確定。
創建Chart倉庫。
說明當命名空間開啟了自動創建倉庫功能后,無需提前在界面創建Chart倉庫,可直接在終端Helm Push Chart倉庫。
企業版中Chart倉庫的格式為
<實例名稱>-chart.<Region ID>.cr.aliyuncs.com/<命名空間>/<Chart 倉庫名>
,Chart倉庫的版本為<Chart 名稱>-<版本號>
。如果您希望使用VPC內網訪問,則Chart倉庫的格式為<實例名稱>-chart-vpc.<Region ID>.cr.aliyuncs.com/<命名空間>/<Chart 倉庫名>
。在企業版實例概覽頁面,組件設置區域,打開Charts右側的開關。
在企業版實例管理頁面選擇 。
在Chart倉庫頁面單擊創建Chart倉庫。
在創建Helm Chart對話框選擇命名空間,設置Chart倉庫名稱和類型,然后單擊確定。
配置訪問憑證。
設置固定密碼或者臨時密碼,作為后續Helm Chart的訪問憑證。以下以設置固定密碼為例:
在企業版實例管理頁面選擇 。
在訪問憑證頁面單擊設置固定密碼。
在設置固定密碼對話框輸入密碼和確認密碼,單擊確定。
配置訪問控制臺策略。
開啟公網訪問或者添加指定VPC打開專有網絡訪問,保證后續Helm Chart的上傳。本文以配置公網的訪問控制為例。關于配置專有網絡的訪問控制的更多信息,請參見配置專有網絡的訪問控制。
在企業版實例管理頁面選擇 。
在訪問控制頁面單擊公網頁簽。
在公網頁簽下,打開訪問入口,單擊添加公網白名單。
在添加公網白名單對話框中,輸入允許訪問的地址段和備注信息,然后單擊確定。
打開公開匿名拉取開關。(可選)
打開公開匿名拉取開關后,您可以免登錄匿名拉取公開Chart倉庫。
登錄容器鏡像服務控制臺。
在頂部菜單欄,選擇所需地域。
在左側導航欄,選擇實例列表。
在實例列表頁面單擊目標企業版實例。
在概覽頁面右側實例設置區域打開公開匿名拉取開關。
在提示對話框單擊確定。
步驟二:安裝并配置Helm客戶端
下載Helm Chart。
說明本文使用Helm3.7及以上客戶端版本推送和拉取Chart??梢酝ㄟ^
helm version -c
查看客戶端版本。本文以Helm3.10.0為例,為您介紹推送拉取Chart。執行如下命令,將Helm安裝包解壓并放置到指定位置。
# 解壓縮。 tar -zxvf helm-v3.10.0-rc.1-linux-amd64.tar.gz # 移動至指定位置。 mv linux-amd64/helm /usr/local/bin/helm
執行如下命令,安裝Helm插件。
說明安裝Helm插件前,請先執行
yum install git
安裝Git。helm plugin install https://github.com/chartmuseum/helm-push
步驟三:推送和拉取Chart
執行如下命令,指定一個本地倉庫名稱,并且映射到線上的某一個命名空間下的Chart倉庫。
helm repo add <本地倉庫名稱> https://test9-7-chart****.cn-hangzhou.cr.aliyuncs.com/ns1/repo1 --username <username> --password <password>
執行如下命令,推送Chart。
# 本地創建一個Chart。 helm create <Chart名稱> # 推送Chart目錄。 helm cm-push <Chart名稱> <本地倉庫名稱>
在Chart倉庫頁面單擊目標Chart倉庫名稱,單擊版本列表。在版本列表頁面,您可以看到新增的Chart。
執行如下命令,安裝以及拉取Chart。
# 從線上Chart倉庫更新本地Chart索引。 helm repo update # 拉取Chart。 helm fetch <本地倉庫名稱>/<Chart名稱> --version <Chart版本> # 或者直接安裝Chart helm install -f values.yaml <本地倉庫名稱>/<Chart 名稱> --version <Chart 版本>