1. Helm 文件
Helm Chart 是 Kubernetes mainfest 文件的组织管理的文件集合,
Helm 帮助您管理 Kubernetes 应用 -- Helm Chart
,即使是最复杂的 Kubernetes 应用程序,都可以帮助您定义,安装和升级。
1.1. 示例
基于 helm create
命令可以创建出来一个参考的模板 Chart
# helm create mychart
Creating mychart
创建的模板内容
# tree mychart/
mychart/
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
3 directories, 10 files
1.2. 文件介绍
mychart/
: 一个 Chart 的根目录。目录名称没有限制要求,但推荐命名为和功能一致的组建名称,如wordpress/
。mychart/charts/
: 管理子 Chart 的目录,在 Charts.yaml 中 dependency 依赖的 Chart 通过 helm dependency build 可以缓存到 charts 目录中。mychart/Chart.yaml
: 有关 chart 的信息存储在名为 Chart.yaml 的特殊文件中。Chart.yaml 文件与 Chart 对象mychart/templates
: 待渲染的 Kubernetes 清单文件存放的位置,会将该目录中的内容{{}}
内容渲染后生存 Kubernetes 文件。mychart/templates/_helps.tpl
: 在 templates 中特例是以下划线_
开头的文件,该文件在安装升级时不会渲染。详见 Chart 命名模板mychart/templates/NOTES.txt
: 在 Helm 安装和升级完成后,在终端中显示出的提示信息,该文件中的变量{{}}
内容也会被渲染,该内容应该保持精简。详见 NOTES.txtmychart/templates/tests/
: Helm 支持在安装或完成后提供测试的支持,测试的服务保存在该目录中,通过 helm test 执行测试。mychart/values.yaml
: 使用values.yaml 文件
来配置和保存变量,使用.Values 对象
在模板中引用该变量。详细见 values.yaml 文件与 Values 对象.helmignore
: Helm 支持在打包时可以忽略一些文件,类似 git 的.gitignore
文件,详见 .helmignoremychart/crds
: 保存 CRD 的目录,为了保障安装, CRD 的文件只支持自动安装,不支持自动卸载。详见 crdsmychart/requirements.yaml
: Helm V2 版本声明 Chart 依赖的文件,Helm V3 版本已经弃用,由 Chart.yaml 中的 dependency 替代,详见 requirements.yaml