Kubernetes 给我们提供了大量官方 chart,不过要部署微服务应用,还是需要开发自己的 chart,下面就来实践这个主题。
创建 chart
执行 helm create mychart
的命令创建 chart mychart
:
Helm 会帮我们创建目录 mychart
,并生成了各类 chart 文件。这样我们就可以在此基础上开发自己的 chart 了。
新建的 chart 默认包含一个 nginx 应用示例,values.yaml 内容如下:
开发时建议大家参考官方 chart 中的模板、values.yaml、Chart.yaml,里面包含了大量最佳实践和最常用的函数、流控制,这里就不一一展开了。
调试 chart
只要是程序就会有 bug,chart 也不例外。Helm 提供了 debug 的工具:helm lint
和 helm install --dry-run --debug
。
helm lint
会检测 chart 的语法,报告错误以及给出建议。
比如我们故意在 values.yaml 的第 8 行漏掉了一个 :
,
helm lint mychart
会指出这个语法错误。
mychart
目录被作为参数传递给 helm lint
。错误修复后则能通过检测。
helm install --dry-run --debug
会模拟安装 chart,并输出每个模板生成的 YAML 内容。
我们可以检视这些输出,判断是否与预期相符。
同样,mychart
目录作为参数传递给 helm install --dry-run --debug
。
下一节我们讨论如何安装并将 chart 添加到仓库。