一、什么是Helm

Helm 是 Kubernetes 的事实标准包管理工具,通过模板化方式(Charts)将 Kubernetes 应用的 YAML 资源打包、版本化、参数化与一键部署,让复杂的 K8s 应用交付变得简单可复用。Helm 类比 Linux 发行版的 apt/yum,让 K8s 上的应用分发拥有清晰的版本、依赖、回滚能力,是云原生应用分发与 Helm Chart 生态繁荣的核心基础设施。
二、原理
1. Chart 编写:把 K8s 资源模板化(Deployment、Service、ConfigMap 等) → 2. Values 参数化:通过 values.yaml 提供环境差异化配置 → 3. 模板渲染:Helm 把 Chart + Values 渲染为最终 K8s 清单 → 4. Release 管理:每次安装生成一个 Release,支持升级、回滚、历史查看 → 5. 依赖管理:通过 requirements.yaml 或 Chart.yaml dependencies 管理 Chart 间依赖 → 6. 仓库生态:通过 Chart Museum 或 OCI Registry 分发 Chart
三、信息卡片
| 中文名 | Helm 包管理器 |
| 英文名 | Helm |
| 缩写 | — |
| 别名 | Helm Chart、Helm 包管理器、Kubernetes Helm |
| 提出者 | Deis 公司(后并入 Microsoft),CNCF 项目 |
| 提出时间 | 2015 年首次发布 |
| 所属类别 | IT 基础架构 > 云原生 > K8s 包管理 |
| 核心技术 | Chart 模板、Values 参数化、Release 版本管理、OCI Registry |
| 主要应用 | K8s 应用打包、多环境部署、第三方中间件分发 |
四、历史时间线
- 2015 年:Helm 由 Deis 公司(后并入 Microsoft)首次发布
- 2016 年:Helm 与 Draft 合并为 Helm 2
- 2018 年:CNCF 接纳 Helm
- 2019 年:Helm 3 发布,去除 Tiller 简化架构,安全性与易用性大幅提升
- 2022 年:Helm Chart OCI 支持标准化,向 OCI Registry 迁移
- 2024-2025 年:Artifact Hub 上 Chart 数量过万,覆盖 90% 以上主流中间件与应用
五、分类
- 按版本:Helm 2(已停止维护)vs Helm 3(事实标准)
- 按 Chart 类型:应用 Chart vs 库 Chart
- 按存储:传统 HTTP 仓库 vs OCI Registry
- 按使用场景:自研应用分发 vs 第三方中间件分发 vs 平台模板
- 按工具链:Helm CLI vs Helm Diff 插件 vs Helmfile vs Helmwave
六、应用场景
- K8s 应用打包:把复杂 K8s 应用打包为可复用 Chart
- 多环境管理:通过 Values 区分开发、测试、生产环境
- 第三方中间件分发:KubeSphere、Rancher 等平台以 Chart 形式分发组件
- 内部平台模板:企业通过 Chart 模板化最佳实践
- GitOps 协同:与 ArgoCD、Flux 集成实现 Chart 自动化部署
七、优缺点
优点:简化应用部署:复杂 K8s 应用一键部署;标准化交付:让应用交付可版本、可审计;支撑多环境管理:开发、测试、生产环境参数化;加速云原生普及:让普通开发者也能驾驭 K8s;繁荣生态:Helm Chart 生态覆盖几乎所有主流中间件
- 缺点:模板可读性差:复杂 Chart 模板调试困难;版本管理复杂:依赖版本、Chart 版本、Values 兼容性需要精细管理;回滚粒度粗:默认按 Release 回滚,无法细粒度回滚部分资源;安全隐患:模板渲染可执行任意函数,需谨慎管理 Chart 来源
八、常见误区
Helm = Kustomize(错:Helm 是模板化包管理,Kustomize 是补丁化覆盖,二者解决不同问题)
- Helm 3 与 Helm 2 兼容(错:Helm 3 移除了 Tiller,与 Helm 2 不兼容)
- Helm Chart 等于 K8s 应用(错:Chart 是模板,K8s 应用是渲染并部署后的实例)
- Helm 适合所有 K8s 场景(错:复杂定制场景 Kustomize 或 Operator 可能更合适)
九、关联概念
- 父概念:Kubernetes容器编排、云原生
- 子概念:Chart、Values、Release
- 兄弟概念:Kustomize、Operator、ArgoCD
- 对比概念:Helm vs Kustomize、Helm vs Operator、Helm vs ArgoCD
- 应用相关:Kubernetes容器编排、ArgoCD、GitOps