Kubernetes生态系统中最受欢迎的包管理器Helm终于迎来了版本4的重大飞跃。如果说从Helm 2到3的过渡带来了“Tiller的移除”这一颠覆性变化,那么此次Helm 4则将重点放在了“现代化(Modernization)”、“安全性(Security)”以及“开发者体验(DX)”上。
投入大约15分钟的时间,让我们彻底剖析Helm 4的主要变化,这些变化将把您的集群管理能力提升到一个新的水平!⛵

1. 📦 OCI (Open Container Initiative) 成为默认!
在Helm 3中也可以使用OCI注册表(如Docker Hub、GitHub Container Registry等),但这要么是实验性功能,要么需要单独配置。
- 变化点: OCI注册表现在成为Chart分发的
标准(First-class citizen)
。
- 效果: 不再需要单独运营“Chart Repository”服务器,Helm Chart可以像容器镜像一样在相同的地方进行存储和管理。
# 在Helm 4中,无需单独设置环境变量即可直接使用OCI。
helm push my-chart-0.1.0.tgz oci://ghcr.io/my-org/charts
2. 🌙 引入Lua模板引擎 (超越Go Template的局限)
长期以来,Helm的Go Template方式在实现复杂逻辑时,因可读性差和维护困难而备受诟病。
- 变化点: Helm 4正式支持高性能脚本语言Lua。(Go Template仍可使用,保持向下兼容性。)
- 表情符号总结: 📜 + 🚀 = 💎
- 效果: 可以更清晰、更强大地编写循环、条件语句等复杂的安装逻辑。
3. 🛡️ 安全性增强: 签名与验证的现代化
安全性再怎么强调也不为过。Helm 4大幅增强了供应链安全。
- 变化点: 摆脱了传统的基于GnuPG的签名方式,与Cosign等现代签名工具的集成更加深入。
- 效果: 验证Chart未被篡改的过程变得更加简便,并且可以轻松满足企业环境中严格的安全合规要求。
4. 🧹 遗留清理: Chart API v1正式告别
长期以来维护的Helm 2时代的遗留产物——apiVersion: v1 Chart的支持已终止或大幅缩减。
- 变化点: 现在所有Chart都必须基于apiVersion: v2编写。
- 您的行动: 如果您正在使用非常旧的Chart,在升级到Helm 4之前,必须检查并转换其Chart.yaml格式。🛠️
5. 🏗️ CRD (Custom Resource Definition) 管理改进
Helm 3最大的抱怨之一是“CRD不会更新”。
- 变化点: Helm 4改进了CRD的生命周期管理方式。通过–manage-crds等新标志或生命周期钩子,为应用程序升级时安全更新CRD开辟了途径。
- 注意: 尽管仍需谨慎处理以防止数据丢失,但管理便利性已显著提高。
6. 🛠️ 实战!Helm 4中变化的命令示例
看到命令后,您会更直观地感受到这些变化。
# 1. Chart创建 (默认应用v2 API和改进的结构)
helm create my-new-app
# 2. OCI注册表登录 (与Docker相同的方式)
helm registry login ghcr.io -u <username>
# 3. 使用增强验证功能进行安装
helm install my-release oci://ghcr.io/my-org/charts/my-app --version 1.0.0 --verify
7. 结论: 为何现在应关注Helm 4?🏁
Helm 4不仅仅是版本号的提升,它定义了“Kubernetes运营的现代标准”。特别是OCI集成和Lua的引入,对于管理大规模集群的专家们来说,是如同福音般的变化。
💡 为您总结:
- 使用OCI。仓库管理将变得更便捷。
- 对于复杂的Chart,考虑切换到Lua。
- 自动化安全签名。
- 是时候放弃旧的v1 Chart了。
发表回复