Helm模板

Helm模板对应Helm社区的Helm Chart概念,是Helm定义的一种打包格式,用来描述一组相关的kubernetes资源。Helm 能够帮您管理自定义的 Kubernetes 资源集合,从而快速实现复杂应用的定义、安装、升级。

备注:Helm模板页面提供了模板托管服务,该服务不区分地域。

Helm客户端

helm客户端为命令行工具,可以在Helm Github页面进行下载。

模板市场

开放使用的Helm模板。可以点击模板名称进入模板详情,查看模板介绍、用法和参数。

我的模板

用户可以上传自己的Helm模板包,并在集群中部署。

用户自行上传的模板将在"Helm模板-我的模板"中展示,并可以通过helm命令行工具操作其中的模板。

模板包准备建议使用helm客户端操作。

准备模板包

您可以通过如下两种方法准备模板包:

  1. 自定义模板包。模板包制作方式和文件结构可以参考Helm社区文档:
  1. 使用Kubernetes官方模板包。访问https://github.com/helm/charts,可以获取当前社区所有模板包。

打包模板包

建议使用helm客户端操作。

在模板包文件夹所在目录执行helm package ./{name},其中{name}为模板包名称,该操作会在目录下生成相应的模板包tgz文件。

$ ls -l
drwxr-xr-x  6 root root     4096 Feb 15 23:07 mysql
$ helm package ./mysql
Successfully packaged chart and saved it to: /root/my-charts/mysql-0.15.0.tgz
$ ls
mysql  mysql-0.15.0.tgz

也可以通过 tar 工具打包

$ tar pzcf {name}-{version}.tgz ./{name}

其中,

  • {name}替换为实际的模板包名。
  • {version}实际的模板包版本号。

注意:

{name}和{version}必须与模板包中Chart.yaml中所写的name和version相同。

模板包命名规范

模板包命名格式为:模板名称-主版本号.次版本号.修订号.tgz,如mysql-0.15.0.tgz。

  • 模板名称长度不能超过32个字符,必须以小写字母开头,可以包含小写字母、数字、-。
  • 主版本号、次版本号和修订号只能填写非负整数,语义参考语义化版本规则,不支持pre-release格式的修订版本号。
  • 模板名称和版本号须与模板包内Chart.yaml中所写的name和version相同。

使用helm客户端操作

可以通过helm客户端操作页面上"我的模板"对应的模板仓库,模板仓库地址见我的模板右上角-仓库地址按钮。

添加仓库时需要提供模板仓库用户名密码,可以通过右上角创建/修改模板仓库用户名密码。对于已经创建过镜像仓库用户名密码的用户,模板仓库用户名密码与镜像仓库用户名密码一致。

image.png

使用helm客户端添加模板仓库的命令如下:

$ helm repo add cce-private <模板仓库地址> --username=<username> --password=<password>

对于模板仓库的操作,可以参考Helm社区文档 https://helm.sh/docs/helm/#helm-repo

安装模板

在列表页面和模板详情顶部的点击安装按钮,默认安装模板的最新版本。如果要安装历史版本,可以在模板详情-版本中选择历史版本进行安装。

安装模板时,需要填写实例名称,目标CCE集群和集群命名空间,以及模板参数。

实例名称规范如下:

  • 实例名称不能超过32个字符,必须以小写字母开头,小写字母或数字结尾,可以包含小写字母、数组、-。
  • 实例名称不能与目标集群中已有的实例冲突。

模板参数文本框内填充模板默认参数值,可以在安装模板时进行修改。

安装完成后,会自动跳转到对应的Helm实例页面。

image.png