全部產品
Search
文件中心

Container Registry:使用Helm 2推送和拉取Chart

更新時間:Jun 30, 2024

Helm是一個Kubernetes包管理工具,使用Chart打包、管理和部署Kubernetes應用程式。當您建立了一個新的Chart或更新了已有的Chart後,可以將其推送到Helm倉庫,以便其他人可以拉取並使用。Helm是一個Kubernetes包管理工具,使用Chart打包、管理和部署Kubernetes應用程式。

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

  1. 建立命名空間。

    1. 登入Container Registry控制台

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

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

    4. 在企業版執行個體管理頁面選擇Helm Chart > 命名空間

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

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

  2. 建立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 倉庫名>

    1. 在企業版執行個體概覽頁面,組件設定地區,開啟Charts右側的開關。

    2. 在企業版執行個體管理頁面選擇Helm Chart > Chart 倉庫

    3. Chart倉庫頁面單擊建立Chart倉庫

    4. 建立Helm Chart對話方塊選擇命名空間,設定Chart倉庫名稱類型,然後單擊確定

  3. 配置訪問憑證。

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

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

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

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

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

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

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

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

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

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

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

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

    1. 登入Container Registry控制台

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

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

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

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

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

步驟二:安裝並配置用戶端

  1. 從官方下載需要的Helm Chart版本

    說明

    請確保用戶端為v2版本,可以通過執行helm version -c命令查看用戶端版本。以下為v2.14.2版本的使用樣本。

  2. 執行以下命令,將Helm安裝包解壓縮並放置至指定位置。

    # 解壓縮。
    tar -zxvf helm-v2.14.2-linux-amd64.tgz
    # 移動至指定位置。
    mv linux-amd64/helm /usr/local/bin/helm                    
  3. 安裝Helm外掛程式。

    說明

    在安裝Helm外掛程式前,需要預先安裝Git。

    如果您位于海外或訪問Github比較流暢,執行以下命令安裝Helm外掛程式。

    helm plugin install https://github.com/AliyunContainerService/helm-acr
  4. 初始化Helm環境。

    • 如果你當前在Container Service叢集節點上,預設已經有初始化完成的Tiller,只需要初始化Client。並且希望避免訪問Google Chart源,執行以下命令,初始化Helm環境。

      helm init --client-only --skip-refresh
    • 如果你當前在自建的Kubernetes叢集節點上,並且希望避免訪問Google Chart源,執行以下命令,初始化Helm環境。

      helm init --skip-refresh

步驟三:推送和拉取Chart

  1. 執行以下命令,配置本地倉庫映射。

    需要指定一個本地倉庫名稱,映射到線上的某一個命名空間下的某一個Chart倉庫。

    export HELM_REPO_USERNAME='<企業版執行個體訪問憑證中帳號>';
    export HELM_REPO_PASSWORD='<企業版執行個體訪問憑證中密碼>';
    helm repo add <本地倉庫名稱> acr://<執行個體名稱>-chart.<Region ID>.cr.aliyuncs.com/<命名空間>/<Chart 倉庫> --username ${HELM_REPO_USERNAME} --password ${HELM_REPO_PASSWORD}            

    配置本地倉庫映射

  2. 推送Chart。

    1. 執行以下命令,推送Chart。

      # 本地建立一個Chart。
      helm create <Chart名稱>
      
      # 推送Chart目錄。
      helm cm-push <Chart名稱> <本地倉庫名稱>
      
      # 或者推送Chart壓縮包。
      helm cm-push <Chart名稱>-<Chart版本>.tgz <本地倉庫名稱>            

      推送chart

    Chart倉庫頁面單擊Chart倉庫名稱,單擊版本列表。在版本列表頁面可以看到新增一個Chart。

  3. 執行以下命令,拉取Chart。

    # 從線上Chart倉庫更新本地Chart索引。
    helm repo update
    
    # 拉取Chart。
    helm fetch <本地倉庫名稱>/<Chart名稱> --version <Chart版本>
    
    # 或者直接安裝Chart。
    helm install -f values.yaml <本地倉庫名稱>/<Chart名稱> --version <Chart版本>