全部产品
Search
文档中心

容器镜像服务 ACR:使用Helm 2推送和拉取Chart

更新时间:Nov 29, 2023

Helm是一个Kubernetes包管理工具,使用Chart打包、管理和部署Kubernetes应用程序。当您创建了一个新的Chart或更新了已有的Chart后,可以将其推送到Helm仓库,以便其他人可以拉取并使用。Helm是一个Kubernetes包管理工具,使用Chart打包、管理和部署Kubernetes应用程序。

步骤一:配置企业版实例

  1. 创建命名空间。

    1. 登录容器镜像服务控制台

    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. 登录容器镜像服务控制台

    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环境。

    • 如果你当前在容器服务集群节点上,默认已经有初始化完成的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版本>