Helm3部署
Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上,而Helm3是Helm的一个常用且稳定的版本。
部署服务提供了使用Helm部署、升级kubernetes集群的功能。
- 参照新建应用,完成应用创建。
- 根据业务场景,在“部署步骤”页面,添加该部署步骤。
- 对步骤进行配置,详细参数配置如下所示。
表1 参数说明 参数项
说明
步骤显示名称
必填。步骤添加后在部署步骤显示的名称。仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。
集群类型
默认,自定义集群。
Kubernetes接入点
必选。可选用CCE集群或您自己的K8s集群:
- 华为云CCE集群
- 创建CCE集群。
- 创建命名空间。
- 选择需要部署的集群。
- 您自己的K8s集群
配置kubeconfig文件,选择需要部署的集群。
请选择Helm版本
必选。请选择Helm版本,默认为“helm-3.4.1”。
Helm命令
必填。目前提供 install、upgrade、uninstall三种。
当执行upgrade时,若发布名称不存在,可设置自动改为install执行。
命名空间名称
必填。填写命名空间名称。
发布名称
必填。自定义发布名称,对同一个发布名称可做upgrade操作。
Chart包来源
必选。选择需要安装的Chart包来源,目前支持“制品仓库”和“代码仓库”。
当选择“代码仓库”,则需要指定仓库和分支。
选择Chart包
Chart包来源选择“制品仓库”时,此项必选。
填写具有Chart文件结构的目录或Gzip格式压缩包。
Chart包路径
Chart包来源选择“代码仓库”时,此项必填。
填写具有Chart文件结构的目录或Gzip格式压缩包的路径。
Values文件路径
当Chart包来源选择“制品仓库”时,这里可以选择来自制品仓库的values文件和包含values文件的文件夹。
当Chart包来源选择“代码仓库”时,这里可以选择来自制品仓库、代码仓库的values文件和包含values文件的文件夹。
例如指定'Myvalues.yaml'将在helm命令参数中添加' -f Myvalues.yaml'。
指定Values文件
若Values文件路径为文件夹,可以通过填写文件的相对路径来指定具体的Values文件。多个文件路径通过英文逗号分隔,例如:'values1.yaml,values2.yaml'
设置Values
在命令行上设置值,若指定'key1=val1,key2=val2'(多个值用逗号分隔),将在helm命令参数中添加' --set key1=val1,key2=val2'。
Helm命令参数
在helm命令参数中添加其它内容。
控制选项
当前步骤部署失败后,应用是否继续部署后续的步骤。
- 华为云CCE集群
Helm3部署示例的环境准备
本节作为后续三个示例的环境准备,以环境准备中的chart目录为例,将使用如下模板,对CCE集群进行部署,在代码托管代码仓中,创建如下目录。

configmap.yaml部分片段:
metadata:
name: {{ .Values.configmapname }}
deployment.yaml部分片段:
spec:
template:
spec:
containers:
- image: '{{ .Values.imagename }}:{{ .Values.imagetag }}'
values.yaml部分片段:
configmapname: valuesfromfile imagename: httpd imagetag: latest
{{ .Values.xxxx }} 对应Chart内values.yaml定义的变量。
以下三个示例,是在本节基础上进行的。
参考:Values文件使用说明。
- 示例1:使用Chart包或Chart文件结构目录部署
如果Chart中已有缺省values文件,则不需要指定制品仓库values文件,可直接部署。
其部署结果为:

对应CCE生成的configMap为:

对应CCE生成的deployment为:

- 示例2:通过指定制品仓库中的Values文件部署
本示例将演示,指定制品仓库中的Values文件进行部署。
外部values文件中定义的值将会覆盖Chart中values文件定义值。
外部Values的片段,本示例命名为values123.yaml:
configmapname: valuesfile-releasenman imagename: nginx imagetag: stable
如下图,在“选择Values文件”中,选择制品仓库中的Values文件:

其部署结果为:

对应CCE控制台的configMap为:

对应CCE控制台的deployment为:

- 示例3:通过设置Values值进行部署
当设置了Values的值,其优先级会是最高的,会覆盖Chart内values文件设置值以及外部values文件内的设置值。
下面将以设置镜像版本的操作为例:

Chart内values文件片段:
imagetag: latest
制品仓库values文件片段:
imagetag: stable
在设置values,填入:
imagetag=perl
其部署结果为:

对应CCE控制台的deployment为:
