重磅 | Helm 3 发布
新闻
作者: 才云 Caicloud
译者:bot(才云)
2019-11-14 15:31

美国时间 2019 年 11 月 13 日,Helm 团队宣布 Helm 3 第一个稳定版本发布

Helm 3 以 Helm 2 的核心功能为基础,对 Chart repo、发行版管理、安全性和 library Charts 进行了改进。

相比 Helm 2,Helm 3 最明显的变化是 Tiller 的删除,它新增丰富功能,某些功能已被弃用或重构,与 Helm 2 不再兼容。

此外,Helm 3 还引入了一些新的实验功能,包括 OCI 支持。Helm Go SDK 已重构为通用,目标是共享和重用 Go 社区开源代码。

Helm 为团队提供了在 Kubernetes 内部创建、安装和管理应用程序时需要协作的工具。

有了 Helm,开发者可以…

  • 查找要安装和使用的预打包软件(Chart);
  • 轻松创建和托管自己的软件包;
  • 将软件包安装到任何 K8s 集群中;
  • 查询集群以查看已安装和正在运行的程序包;
  • 更新、删除、回滚或查看已安装软件包的历史记录;
  • ……

一言以蔽之,通过 Helm,你可以轻松在 Kubernetes 中运行应用程序。

面对新版本,相信很多开发者都有这样的疑问:

Helm 3 的工作流程与 Helm 2 相比有什么变化?如果我还是使用 Helm 2 运行这些命令,是否可以看到相同的输出?

Helm 2 描述了用于创建、安装和管理 Chart 的工作流程。Helm 3 建立在该工作流程的基础上,更改了基础架构,以满足不断发展的生态系统的需求。

1移除 Tiller

在 Helm 2 开发周期中,Helm 团队引入了 Tiller。它使多个不同的操作员可以与同一组发行版进行交互,对于在共享集群中工作的团队非常有用。

但 Kubernetes v1.6 默认启用基于角色的访问控制(RBAC),这之后在生产环境中用 Tiller 会变得难以管理。同时出于安全策略考虑,Helm 3 移除了 Tiller,安全模型从根本上得以简化

2三方战略合并补丁

Helm 2 使用双向战略合并补丁,在升级过程中,它会比较最新 Chart 清单与建议 Chart 清单的差异,以确定需要对 Kubernetes 中的资源进行哪些更改。在 Helm 3 中,它现在使用三向战略合并补丁

生成补丁时,Helm 会考虑旧清单、当前状态和新清单,充分保障资源能回滚到以前的状态。

3Release Names 现在位于命名空间

随着 Tiller 的删除,在 Helm 3 中,有关特定版本的版本信息现在存储在与版本本身相同的命名空间中

4Secrets 作为默认存储驱动程序

Helm 2 默认情况下使用 ConfigMaps 存储发行信息。在 Helm 3 中,现在将 Secrets 用作默认存储驱动程序

5Go 导入路径更改

在 Helm 3 中,它将 Go 导入路径从k8s.io/helm切换为helm.sh/helm/v3

6使用 JSONSchema 验证 Chart 值

Helm 现在可以将 JSON Schema 强加于 Chart 值。这样可以确保用户提供的值遵循 Chart 维护者设计的架构,当用户为 Chart 提供一组错误值时,它能提供更好的错误报告。

7合并

Chart 依赖关系管理系统已从requirements.yamlrequirements.lock移至Chart.yamlChart.lock

8安装时现在需要名称

在 Helm 2 中,如果未提供名称,它会给出一个自动生成的名称。但在 Helm 3 中,如果未提供名称,则会引发错误

9将 Chart 推送到 OCI 注册中心

对于 Chart 的远程托管,Helm 3 希望实现 Docker Registry 那样的功能,借助 OCI Registry As Storage,根据镜像 OCI 标准规范,复用 Registry 来存储 Chart

更多变化:helm.sh/docs/faq/

核心维护人员对此次发布 Helm 3.0 感到非常满意。Helm 的下一个开发阶段将围绕稳定性新功能和对现有功能的增强

  • 增强Helm test的功能;
  • 对 Helm OCI 集成的改进;
  • Go 客户端库的增强功能。

而对于 Helm 2,开发团队将继续接受错误修复并修复出现的任何安全问题,但不会接受任何新功能。所有功能开发将移至 Helm 3。

在 Helm 3 公开发布 6 个月后,团队将停止接受除安全问题以外的 Helm 2 错误修复。

博客:helm.sh/blog/helm-3-released/

如何从 Helm 2 迁移到 Helm 3:

helm.sh/docs/topics/v2_v3_migration/

从 Helm 2 迁移到 Helm 3 的插件:

github.com/helm/helm-2to3

599 comCount 0