更新时间:2024-10-14 GMT+08:00

Helm3部署

Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上,而Helm3是Helm的一个常用且稳定的版本。

部署服务提供了使用Helm部署、升级kubernetes集群的功能。
表1 参数说明

参数项

说明

步骤显示名称

步骤添加后在部署步骤显示的名称。仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。

集群类型

默认,自定义集群。

Kubernetes接入点

可选用CCE集群或您自己的K8s集群:

  • 华为云CCE集群
    1. 创建CCE集群。
    2. 创建命名空间。
    3. 选择需要部署的集群。
  • 您自己的K8s集群

    配置kubeconfig文件,选择需要部署的集群。

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命令参数中添加其它内容。

可参考: helm installhelm upgradehelm uninstall

控制选项

当前步骤部署失败后,应用是否继续部署后续的步骤。

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. 示例1:使用Chart包或Chart文件结构目录部署

    如果Chart中已有缺省values文件,则不需要指定制品仓库values文件,可直接部署。

    其部署结果为:

    对应CCE生成的configMap为:

    对应CCE生成的deployment为:

  2. 示例2:通过指定制品仓库中的Values文件部署

    本示例将演示,指定制品仓库中的Values文件进行部署。

    外部values文件中定义的值将会覆盖Chart中values文件定义值。

    外部Values的片段,本示例命名为values123.yaml:

    configmapname: valuesfile-releasenman
    imagename: nginx
    imagetag: stable

    如下图,在“选择Values文件”中,选择制品仓库中的Values文件:

    其部署结果为:

    对应CCE控制台的configMap为:

    对应CCE控制台的deployment为:

  3. 示例3:通过设置Values值进行部署

    当设置了Values的值,其优先级会是最高的,会覆盖Chart内values文件设置值以及外部values文件内的设置值。

    下面将以设置镜像版本的操作为例:

    Chart内values文件片段:

    imagetag: latest

    制品仓库values文件片段:

    imagetag: stable

    在设置values,填入:

    imagetag=perl

    其部署结果为:

    对应CCE控制台的deployment为: