手把手教你写一个通用的helm chart

作者: ygqygq2 分类: 云计算/虚拟化,系统/运维 发布时间: 2019-07-31 23:38

1. 模板介绍

首先,放上此模板链接:

https://github.com/ygqygq2/charts/tree/master/mod-chart

此chart可当作POD单image的通用模板,只需要使用sed替换下chart名,并修改下README.mdNOTES.txt就可以了。下文,我通过复制此chart成example-chart来作示范说明。

2. 新chart制作

注:
下文中文件内容我保留,只加注释。
注释中需要修改的地方 [*] 标记为必选,[-] 标识为可选。

2.1 目录准备

将模板mod-chart复制成example-chart,并作内容替换。

2.2 修改Chart.yaml

vim Chart.yaml

2.3 修改values.yaml

因为values.yaml设置涉及到yaml格式,yaml文件格式说明可以看这篇文章:

http://www.ruanyifeng.com/blog/2016/07/yaml.html

这里提几个常用的地方:

  1. 使用2个空格作缩进;
  2. 确认数字为字符类型时,使用双引号引起来;
  3. 为了迎合helm3的规范,空定义最好将相关符号补上:

没什么特殊要求,一般需要修改的地方有imageservicehealthCheckpersistentVolume.mountPaths

2.4 修改README.mdtemplates/NOTES.txt

根据 values.yaml中的默认设置相应修改README.md,内容使用markdown语法,这里不作详细说明。
templates/NOTES.txt是部署chart后输出的帮助文档,里面支持go template语法。模板里已经写成了非常通用。必要情况下,适当按应用需求来修改,这样会显得部署后提示非常友好和人性化。

2.5 templates下yaml简要说明

templates目录下为kubernetes资源yaml文件模板,以资源名命名文件名,复杂些的可以加上资源功能或者模块名等。

templates/secret.yaml

templates/deployment-statefulset.yaml

3. 小结

以上yaml中未作详细说明,仔细看其内容都能明白大致意思。以下是对于helm chart新手的一些建议:

  1. 刚接触helm chart时,多模仿stablebianami中charts的写法,特别是values.yamltemplates目录中的一些设计,差不多都已经非常统一了。这样遇到自己有相似需求,可直接使用相应的功能块,写出来的chart也显得非常专业。
  2. 使用chart时,最好使用helm命令fetch下来,大概读一遍其chart内容,这样看多了,自然就越来越熟悉,而且出错时,也便于自己排查问题。

参考资料:
[1] https://helm.sh/
[2] https://whmzsu.github.io/helm-doc-zh-cn/

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据