4

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

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

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

目标是:

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

任何线索将不胜感激。

4

1 回答 1

2

Helm 可以为你做很多事情:

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

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

我认为使用可重用图表的 helm 是原始 k8s 清单的一个很好的下一步。

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

于 2020-10-02T20:23:20.277 回答