You need to enable JavaScript to run this app.
导航

推送和拉取 Helm Chart

最近更新时间2023.12.21 11:26:17

首次发布时间2021.11.11 21:06:11

镜像仓库标准版支持托管 Helm Chart,本文介绍使用标准版实例推送拉取 Chart 的步骤。

前提条件

  • 已注册火山引擎账号。详细操作,请参见 如何进行账号注册
  • 账号已通过企业认证。详细操作,请参见 实名认证

    注意

    仅支持企业实名认证的用户使用火山引擎镜像仓库 CR 产品。

  • 已开通镜像仓库产品。若未开通,请登录 镜像仓库控制台,根据系统引导开通产品。
  • 若需要 IAM 用户操作镜像仓库,请确保已完成镜像仓库相关策略和角色授权,具体操作说明参见 管理授权
  • 已在业务服务器中安装 Helm 3 客户端。详细操作,请参见 官网

    注意

    当前 Helm 3.13.0 和 3.13.1 客户端版本存在缺陷,请选择其他的版本使用。

  • 已在业务服务器中开启 OCI 使用支持:export HELM_EXPERIMENTAL_OCI=1

步骤一:创建标准版实例

具体操作请参见 购买标准版实例

步骤二:设置访问密码

在使用镜像仓库前需要设置仓库访问密码,此处设置的访问密码即 docker login 的密码。

  1. 登录 镜像仓库控制台
  2. 实例列表 页面单击目标标准版实例,进入该标准版实例。
  3. 在左侧导航栏选择 概览,进入 概览 页面。
    进入未设置访问密码的标准版实例页面时,系统会自动弹出 设置仓库实例密码 对话框。
  4. 设置仓库实例密码 对话框中输入密码和确认密码后,单击 确定,完成密码的设置。

步骤三:创建命名空间

  1. 在标准版实例页面,单击左侧导航栏的 命名空间,进入 命名空间 页面。
  2. 单击 创建命名空间,在弹出的 创建命名空间 对话框中填写参数后,单击 确定,完成命名空间的创建。
    参数说明
    名称根据系统提示,设置命名空间名称,必须为标准版实例级别唯一。

步骤四:创建 OCI 制品仓库

  1. 在标准版实例页面,单击左侧导航栏的 OCI制品仓库,进入 OCI制品仓库页面。
  2. 单击 创建OCI制品仓库,在弹出的对话框中填写参数信息后,单击 确定,完成 OCI 制品仓库的创建。
    参数说明
    命名空间选择本文上方 步骤三 中创建的命名空间。
    类型选择该 OCI 制品仓库的类型。本示例设置为 私有
    • 公有类型:拥有全读写权限的子用户可推送或拉取镜像,其他用户可匿名拉取镜像。
    • 私有类型:拥有全读写权限的子用户可推送或拉取镜像 ,拥有只读权限的子用户可拉取镜像。
    名称输入该 OCI 制品仓库的名称。制品仓库名称,必须为命名空间级别唯一。
    描述输入该 OCI 制品仓库的详情描述。可以为空。

步骤五:推送或拉取 Chart

注意

因 Helm 版本兼容性问题,在推送或拉取 Chart 时,Helm v3.7以下版本,和v3.7(含)以上版本的命令不相同。复制命令并执行时,请注意控制台上的说明。

登录镜像仓库

  1. OCI制品仓库 页面,单击本文上方 步骤四 中创建的 OCI 制品仓库名称。

  2. 在 OCI 制品仓库详情页面,单击 Chart使用指南 页签,查看操作 Chart 的相关命令。

    Chart使用指南 页签,单击每个命令右侧的
    图标,可复制该命令。此处可复制 登录 Registry 命令备用。

    alt

  3. 登录 前提条件 中已安装 Helm 3 客户端。

  4. 执行已复制的 登录 Registry 命令,登录镜像仓库标准版实例。
    输入您在本文上方 步骤二 中设置的访问密码。系统返回login succeeded,表示登录成功。

推送 Chart

成功登录镜像仓库后,可以推送 Chart 到镜像仓库标准版实例中。

  1. 在 OCI 制品仓库详情页面的 Chart使用指南 页签,复制 上传 Chart 下的打包(save/package)Chart 命令。
    alt

  2. 在 Helm 客户端执行已复制的命令,打包 Chart。
    其中,将[Chart 名称]替换为本地 Chart 的名称;将[Chart 版本号]替换为需要设置的 Chart 版本号。

    注意

    请勿将[Chart 版本号]和本标准版实例中已上传镜像的[镜像版本号]设置为同一版本号,避免版本号覆盖导致老数据丢失。

    • Helm 3.7 之前版本完整命令示例:
    helm chart save redis cr-doc-cn-beijing.cr.volces.com/test/test:chart-v1    
    
    • Helm 3.7(含)之后版本完整命令示例:
    helm package redis --version chart-v1    
    

    系统返回类似如下信息,表示打包 Chart 成功。

    Successfully packaged chart and saved it to: /Users/bytedance/redis-chart-v1.tgz
    
  3. 在 OCI 制品仓库详情页面的 Chart使用指南 页签,复制 上传 Chart 下的推送(push)Chart 命令。
    alt

  4. 在 Helm 客户端执行已复制的命令,推送 Chart。
    其中,将[Chart 名称]替换为本地 Chart 的名称;将[Chart 版本号]替换为上一步设置的 Chart 版本号。

    • Helm 3.7 之前版本完整命令示例:
    helm chart push cr-doc-cn-beijing.cr.volces.com/test/test:chart-v1    
    
    • Helm 3.7(含)之后版本完整命令示例:
    helm push redis-chart-v1.tgz oci://cr-doc-cn-beijing.cr.volces.com/test    
    

    系统返回类似如下信息,表示推送 Chart 成功。

    Pushed: cr-doc-cn-beijing.cr.volces.com/test/redis:chart-v1
    Digest: sha256:f8483b3db04955b2******e70019a81d35aaa88fbd389c285c561b47c0******
    

拉取 Chart

成功登录镜像仓库后,可以从镜像仓库 CR 实例中拉取 Chart 到本地。

  1. 在 OCI 制品仓库详情页面,单击 概览 > Chart 页签,查看需要拉取的 Chart 版本号。
    alt
  2. 单击 Chart使用指南 页签,复制 下载 Chart 下的拉取(pull)Chart 命令。
    alt
  3. 在 Helm 客户端执行已复制的命令,拉取 Chart。
    其中,将[Chart 版本号]替换为需要拉取的 Chart版本号。
    • Helm 3.7 之前版本完整命令示例:
    helm chart pull cr-doc-cn-beijing.cr.volces.com/test/redis:v1    
    
    • Helm 3.7(含)之后版本完整命令示例:
    helm pull oci://cr-doc-cn-beijing.cr.volces.com/test/redis --version v1    
    
    系统返回类似如下信息,表示推送 Chart 成功。
    Pulled: cr-doc-cn-beijing.cr.volces.com/test/redis:v1
    Digest: sha256:d1055f45acf6f9******0d807264ff97e5d02d739d1be7bb3dd0bf03ad******