Helm 使用一种名为 charts 的包格式,一个 chart 是描述一组相关的 Kubernetes 资源的文件集合。单个 chart 既可以用于部署简单的应用,也可以是复杂的应用。
Charts 是创建在特定目录下面的文件集合
,然后可以将它们打包到一个版本化的存档
中来部署。
说明Chart包结构的比较好的学习材料
CRD的安装顺序
当 Helm 安装一个新的 chart 的时候,它将会安装 CRDS,然后会暂停直到 API Server 提供 CRD 为止,然后才开始启动模板引擎
,渲染其余的 chart 模板,并将其安装到 Kubernetes 中。
注意:
values.yaml而不是Values.yaml
- 作用
参数化配置:Values.yaml 允许用户定义可变参数,这些参数在 Helm 图表的其他文件中被引用,以实现配置的动态替换。
简化部署过程:通过提供不同的 values 文件,用户可以快速重新配置并部署同一个 Helm 图表,以适应不同的环境或需求。
提高可维护性:将配置参数集中在一个地方,有助于管理和维护复杂的 Kubernetes 应用。 - 使用场景
多环境部署:为开发、测试和生产环境提供不同的配置。
可配置的应用部署:允许用户根据需求调整应用设置,如副本数、镜像版本等。
图表的复用:通过参数化,使得同一个 Helm 图表可以被用于部署不同的实例或服务。 - 使用技巧
分层的值文件:为不同环境或部署场景创建多个 values 文件,并在部署时指定适当的文件。
使用默认值:在 values.yaml 中为每个参数提供合理的默认值,以简化基本部署。
模板化表达式:在图表的其他文件中使用模板表达式引用 values.yaml 中的值。
值的覆盖:在部署命令中使用 --set 参数来覆盖 values.yaml 中的默认值。
结构化和注释:组织好 values 文件的结构,并充分注释,以提高可读性和可维护性。