需要有关 helm 图表与基于清单的部署的建议

son*_*rma 4 build manifest kubernetes kubernetes-helm kustomize

在我目前的工作中,我们正在运行多个 k8s 集群,并允许多个团队在集群中运行服务。

每个 service/git 存储库都会有 kustomize 文件,其中包含所有补丁的列表。在 CD 阶段,我们将此 kustomize 转换为给定环境/区域的 k8s 清单(服务、配置映射、部署),并运行 kubectl apply 命令在我们的 kubernetes 中运行。

现在,我们开始研究 Helm 图表,而不是将 Kustomize 转换为 k8s 清单,计划是为通用 Helm 图表生成 value.yaml 文件并使用 git sha 部署 Helm 版本。因此,关于这种方法的任何想法或建议,从 k8s 清单迁移到基于 helm 图表版本的部署是否有任何优势。当团队计划进行蓝/绿或金丝雀部署时,Helm Chart 有什么优势吗?

目标是:

  1. 有神器
  2. 回滚计划
  3. 用于验证 yaml 并检查服务是否启动的测试用例。

任何线索将不胜感激。

Cas*_*sey 5

Helm 可以为您做很多事情:

  • 模板 k8s 清单 - 类似于 Kustomize 当前在您的设置中所做的事情
  • 注意升级安装 - 包括删除资源
  • 跟踪安装的修订 - 这样您就可以轻松回滚
  • 允许您将 helmcharts 作为依赖项添加到您的应用程序中 - 因此您的应用程序图表还将包括 mysql 和 redis - 所有这些都在一个地方进行管理并一起部署
  • 使用广泛的配置选项定义默认微服务(包括监控、入口配置等)的图表,并在公司的大多数团队中使用它
  • ETC

看起来最后一点非常符合您的需求,因为您有来自多个团队的许多应用程序。

我认为带有可重用图表的 helm 是原始 k8s 清单的下一步。

您还可以定义要执行的测试来验证版本。