管理Helm Chart
容器镜像服务CCR企业版提供Helm Chart功能,支持在控制台上或通过Helm工具实现Chart的上传与下载,通过该功能您可以高效便捷的托管、分发Kubernetes集群中的各种资源。
- Chart是一系列Kubernetes集群内资源描述文件的组件,一个Chart可以是一个简单的WordPress应用,也可以是一个复杂的etcd集群的集合。
- Helm是一个命名行程序,用于管理这些Chart,以及其运行态Release。
Helm Chart仓库和镜像仓库都归属于命名空间,并从命名空间继承了访问类型等属性,具体信息请参见管理命名空间。
背景信息
容器镜像服务CCR企业版支持托管V2和V3版本的Helm Chart,满足您对不同资源类型的管理要求。不同版本的Helm Chart支持的功能不同:
- 若是v2版本的Helm Chart,您需要通过Helm Chart仓库进行托管。
- 若是v3版本的Helm Chart,您可以直接使用镜像仓库进行托管,也可以使用Helm Chart仓库托管。
前提条件
操作步骤
通过控制台管理Helm Chart
上传Helm Chart包
- 登录容器镜像服务控制台。
- 在左侧导航栏,选择实例列表。
- 在“实例列表”页面单击目标实例。
- 在“实例管理”页面左侧导航栏中选择Helm Chart。
- 在Helm Chart页面单击上传,在“上传Helm Chart”页面完成相关配置:
配置项 | 必选/可选 | 配置说明 |
---|---|---|
命名空间 | 必选 | Helm Chart所属命名空间。 |
Chart文件 | 必选 | 本地Helm Chart压缩包,仅支持 .tgz格式。 |
Prov文件 | 可选 | Chart出处文件,若Chart文件被签名,则需要上传出处(Provenance)文件。 |
说明
上传同名文件将覆盖已有Chart,请谨慎操作。
- 单击确定则开始上传该Chart包到Helm Chart仓库中。上传完成后您可以在仓库列表中查看已上传的Helm Chart。
Helm Chart仓库相关操作
您可以在“实例>Helm Chart”列表页面执行以下操作对Helm Chart仓库进行管理:
查看Helm Chart信息
单击指定Helm Chart仓库的名称进行Chart仓库下一级页面,您可以查看Chart属性和管理Chart版本。
删除Helm Chart仓库
单击Helm Chart仓库对应的删除,在删除确认框中单击确定即可删除Chart仓库,同时支持批量删除多个Chart仓库。
说明
Helm Chart仓库删除后,Chart仓库中所有的数据均被删除,且不可恢复,请谨慎操作。
管理Chart版本
单击指定Helm Chart仓库的名称进行Chart仓库下一级页面,在左侧导航栏中的版本管理页面,您可以在此管理仓库中的Chart版本,并下载、删除操作,如下所示:
下载
单击指定Chart版本右侧操作中的下载,即可将该版本下载到本地,支持一次性下载多个Chart版本。
删除
单击指定Chart版本右侧操作中的删除,在删除确认框中单击确定即可删除Chart版本,同时支持批量删除多个Chart版本。
通过Helm客户端推送和拉取Chart
使用镜像仓库托管Chart
使用Helm 3.7及以上客户端推送、拉取Chart
- 从官方下载合适的Helm版本。
说明
请确保客户端为v3.7及以上版本,可以通过执行
helm3 version -c
命名查看客户端版本。
-
开启Helm3.7及以上版本客户端实验特性。
>$ export HELM_EXPERIMENTAL_OCI=1
-
登录企业版实例,其中用于登录的用户名为百度智能云账号名。
>$ helm3 registry login -u [镜像仓库登录名] [公网或私有网络访问域名]
在返回结果中输入登录密码(密码为访问凭据中的固定密码或临时密码)。
-
创建名为ccr-chart-demo的Chart。
>$ helm3 create ccr-chart-demo
-
在本地将Chart目录制作成名为demo.tgz的压缩包。
>$ tar -zcvf demo.tgz ccr-chart-demo
-
将Chart压缩包推送至镜像仓库。
>$ helm3 push demo.tgz oci://[公网或私有网络访问域名]/[命名空间]
-
从镜像仓库拉取Chart压缩包。
>$ helm3 pull oci://[公网或私有网络访问域名]/[命名空间]/[镜像仓库名称] --version [镜像版本]
-
本地解压Chart压缩包。
>$ tar -xcvf [镜像版本].tgz
使用Helm 3.7以下客户端推送、拉取Chart
- 从官方下载合适的Helm版本。
说明
请确保客户端为v3.7以下版本,可以通过执行
helm3 version -c
命名查看客户端版本。
-
开启Helm3.7以下版本客户端实验特性。
>$ export HELM_EXPERIMENTAL_OCI=1
-
登录企业版实例,其中用于登录的用户名为百度智能云用户名。
>$ helm3 registry login -u [镜像仓库登录名] [公网或私有网络访问域名]
在返回结果中输入登录密码(密码为访问凭据中的固定密码或临时密码)。
-
创建名为ccr-chart-demo的Chart。
>$ helm3 create ccr-chart-demo
-
将Chart目录保存为镜像仓库tag版本。
>$ helm3 chart save ccr-chart-demo [公网或私有网络访问域名]/[命名空间]/[镜像仓库版本名称]:[版本号]
-
将tag版本推送至实例镜像仓库中。
>$ helm3 chart push [公网或私有网络访问域名]/[命名空间]/[镜像仓库版本名称]:[版本号]
-
从实例镜像仓库中拉取指定tag版本。
>$ helm3 chart save ccr-chart-demo [公网或私有网络访问域名]/[命名空间]/[镜像仓库版本名称]:[版本号]
-
导出tag版本到本地目录,即可在本地查看Chart目录。
>$ helm3 chart export [公网或私有网络访问域名]/[命名空间]/[镜像仓库版本名称]:[版本号] -d .
使用Helm Chart仓库托管Chart
以下将介绍如是使用Helm2推送和拉取Chart。
- 从官方下载合适的Helm版本。
说明
请确保客户端为v2版本,可以通过执行
helm version -c
命名查看客户端版本。
-
安装Helm Push插件。
>$ helm plugin install https://github.com/chartmuseum/helm-push
注意
若Helm Push插件为v0.10.0及以上版本,推送Chart需使用
helm cm-push
命令;若为v0.10.0以下版本,推送Chart需使用helm push
命令。
-
配置本地仓库映射(需要指定一个本地仓库名称,映射到线上的某一个命名空间下的某一个Chart仓库)。
>$ helm repo add [本地仓库名称] https://[公网或私有网络访问域名]/chartrepo/[命名空间] --username [企业版实例访问凭据中用户名]
在返回结果中输入登录密码(密码为访问凭据中的固定密码或临时密码)。
-
创建名为ccr-chart-demo的Chart。
>$ helm create ccr-chart-demo
-
推送Chart目录到本地仓库。
>$ helm cm-push [Chart名称] [本地仓库名称]
-
推送Chart压缩包到本地仓库(可选)。
>$ helm cm-push [Chart名称]-[Chart版本].tgz [本地仓库名称]
-
从线上Chart仓库更新本地Chart索引。
>$ helm repo update
-
拉取Chart。
>$ helm fetch [本地仓库名称]/[Chart名称] --version [Chart版本]
-
直接安装Chart(可选)。
>$ helm install -f values.yaml [本地仓库名称]/[Chart名称] --version [Chart版本]