Helm3部署
Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上,而Helm3是Helm的一个常用且稳定的版本。
参数项 |
说明 |
---|---|
步骤显示名称 |
步骤添加后在部署步骤显示的名称。仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。 |
集群类型 |
默认,自定义集群。 |
Kubernetes接入点 |
可选用CCE集群或您自己的K8s集群:
|
Helm命令 |
目前提供 install、upgrade、uninstall三种。 当执行upgrade时,若发布名称不存在,可设置自动改为install执行。 |
命名空间名称 |
填写命名空间名称。 |
发布名称 |
自定义发布名称,对同一个发布名称可做upgrade操作。 |
Chart包来源 |
选择需要安装的Chart包来源,目前支持“制品仓库”和“代码仓库”。 当选择代码仓库,则需要指定仓库和分支。 |
选择Chart包 |
填写具有Chart文件结构的目录或Gzip格式压缩包。 |
选择Values文件 |
选择来自制品仓库的values文件,例如指定'Myvalues.yaml'将在helm命令参数中添加' -f Myvalues.yaml'。 |
设置Values |
在命令行上设置值,若指定'key1=val1,key2=val2'(多个值用逗号分隔),将在helm命令参数中添加' --set key1=val1,key2=val2'。 |
Helm命令参数 |
在helm命令参数中添加其它内容。 |
控制选项 |
当前步骤部署失败后,应用是否继续部署后续的步骤。 |
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为: