Helm
介绍
Helm 是一个面向 Kubernetes 的包管理工具,使用户能够定义、安装和升级复杂的 Kubernetes 应用。Helm Chart 是一个包含 Kubernetes 资源定义(YAML 文件)的模板化配置包。
Helm 的核心概念
- Chart: Helm Chart 是一个包含 Kubernetes 资源定义(YAML 文件)的模板化配置包。
- Release: Helm Release 是已部署 Helm Chart 的一个实例,表示 Kubernetes 资源的特定配置。
- Values: Helm Values 是 Helm Chart 的参数化配置,允许用户自定义 Kubernetes 资源定义。
Argo CD 与 Helm 的集成通过 Web 控制台、Argo CD 监控面板或 CLI 实现声明式持续交付,从而增强 GitOps 实践。示例:
OCI Helm Chart 示例:
INFO
** 原生应用 的生命周期由 Argo CD 管理,而不是 Helm。 **
当提供多个 value 源时,优先级顺序为:parameters > valuesObject > values > valueFiles > helm 仓库 values.yaml。
优势
-
模板化: Helm 使用 Go 模板引擎(gotpl)动态生成 Kubernetes 资源文件。
-
包管理: Helm 将应用打包为 Charts(包括模板、默认值和依赖项),从而简化分发和版本控制。
-
依赖管理: 支持 Charts 之间的依赖关系。
-
生命周期管理: 提供 install、upgrade 和 rollback 等命令,用于完整的生命周期管理。
使用场景
-
复杂应用部署: 适用于需要动态生成配置的场景(例如环境变量或用户输入)。
-
多环境部署: 通过 values.yaml 文件支持特定于环境的配置。
-
应用分发: 可将 Charts 打包并分发到 Helm 仓库或 OCI registry。
参考
如需了解更详细的信息,请参阅:Helm