1. 授权认证
  2. 获取用户个人信息
  3. 项目协同
  4. 代码托管
  5. 持续集成
  6. 制品仓库
  7. 测试管理
  1. 项目协同
  2. 代码仓库
  3. DevOps 实践之旅
  4. 一分钟开始持续集成之旅
  5. 持续部署
  6. 制品库

在 Kubernetes 上持续部署 Helm 应用

Helm 是 Kubernetes 的包管理器,也是一个强大的 yaml 模版引擎。在真实的部署场景中,往往需要部署至多个环境,比如说可能先部署到测试环境再部署到生产环境,它们的 yaml 文件基本是相同的,但某些地方又会有一些微小的差异,我们可以在部署前通过 Helm 和一些自定义参数非常灵活的渲染出来当前环境所需的 yaml 文件,现在 CODING 的持续部署已经支持部署 Helm(不需要 Tiller),本文将介绍如何使用 CODING 来部署一个 Helm 制品。

基本原理

CODING 的服务器会下载 Helm 的 pkg 文件,使用 helm2 客户端的命令 helm template --set --values 生成 yaml 文件,最后部署这个生成的 yaml 文件,整个过程完全不需要 Tiller。

主要部署流程

整个流程非常简单,一共就 3 步。

  1. 准备阶段,配置 Helm 的仓库地址和版本。
  2. 配置部署流程,目的是对 Helm 中需要修改的值进行配置,生成最终的 yaml 文件。
  3. 部署部署上述步骤所生成的 yaml 文件。

准备阶段

创建 Helm 仓库

需要在 CODING 制品库新建 Helm 仓库,然后将 Helm 包文件上传到仓库,将在后续步骤中部署 tomcat 0.4.1

创建持续部署云账号

kubeconfig 创建一个云账号

配置部署流程

创建一个名为 helm 和部署流程

配置 helm 仓库地址和版本

添加 Heml 制品并设置制品别名为 helm-pkg,后面阶段会引用这个别名。

添加 Bake 阶段

添加一个类型为 Bake (Manifest) 的阶段,Expected Artifact 选项中选择 helm-pkg,Overrides 可以配置需要修改的参数,“Add value artifact” 对应了 Helm 客户端命令行的 --values 参数,”Key Value“ 对应了 --set 参数

生成的 yaml 我们需要传给后面的阶段使用,所以需要配置生成制品,选择 Base64,这个配置会将生成的 yaml 文件编码为 Base64 格式,生成一个名叫 helm-yaml 的新制品。

部署阶段

  • 添加一个类型为 部署 (Manifest) 的阶段,并选择上一阶段生成的制品 helm-yaml 和之前配置的云账号,配置完成后,点击右下角的保存就完成了配置。

要执行配置好的部署流程,新建发布单,选择刚才配置的部署流程 helm,并选择需要部署的制品版本 0.4.1,几分钟之后就部署成功了。

总结

本文主要介绍如何使用 CODING 来部署一个 Helm 制品,其核心就是 Bake 的配置,初看起好像很简单,用脚本也能达到同样的效果,但实际上在部署流程中,Bake 是可以同其它阶段相互配合, 创建非常复杂的部署流程的。

上一篇蓝绿发布
最近更新
感谢反馈有用
感谢反馈没用