使用 Helm Chart 发布应用


支持使用 Helm Chart 来管理和发布应用,提高应用发布的效率。Helm Charts 一键发布,支持发布包含多个微服务的复杂应用。


有关 Helm Chart 的详细介绍,参见 Helm Documentation

前提条件

准备应用发布所需的 Chart 文件,并按照以下文件结构打包,然后上传到代码仓库。


examples/
  Chart.yaml          # Yaml 文件,用于描述 Chart 的基本信息,包括名称版本等
  LICENSE             # [可选] 协议
  README.md           # [可选] 当前 Chart 的介绍
  values.yaml         # Chart 的默认配置文件
  requirements.yaml   # [可选] 用于存放当前 Chart 依赖的其它 Chart 的说明文件
  charts/             # [可选]: 该目录中放置当前 Chart 依赖的其它 Chart
  templates/          # [可选]: 部署文件模版目录,模版使用的值来自   values.yaml 和由 Tiller 提供的值
  templates/NOTES.txt # [可选]: 放置 Chart 的使用指南

上传 Chart 文件

通过以下步骤上传 Chart 文件:

  1. 新建一个 Chart 类型应用。在左侧导航栏中,选择 应用 > 新建应用,并提供以下信息:

    • 名称:输入 Chart 应用名称

    • 应用类型:选择 Chart

    • 仓库地址:输入 Chart 文件所在的代码仓库地址

    • 描述:输入 Chart 应用描述

    ../../../_images/creating_chart_app.png
  2. 新建一个流水线任务,上传 Chart。在左侧导航栏中,选择 流水线 > 新建流水线,并提供以下信息:

    • 应用名称:选择创建的 Chart 应用

    • 流水线名称:输入流水线名称

    • 触发设置:选择触发流水线的方式

    • 添加任务:在 上传Chart任务 的配置信息中,设置 Chart 文件在代码仓中的路径(即 Chart.yaml 文件的路径)。

    ../../../_images/uploading_chart.png
  3. 运行流水线,将 Chart 文件上传。

新建发布单

通过以下步骤新建 Chart 部署发布单:

  1. 在左侧导航栏中,选择 发布 > Helm Chart

  2. 在 Chart 列表中,找到已上传的 Chart,点击 Chart 名称,打开 Chart 详情页。

  3. 查看 Chart 的基本信息,点击 view ,可查看 Subcharts 列表。Subcharts 根据部署顺序展示。

    ../../../_images/helm_chart_basics.png
  4. 根据发布需求,选择 发布Dry run,完成发布单配置信息填写:

    • 环境:选择发布应用的环境。

    • 集群:选择发布应用的集群。

    • 版本:选择发布应用的版本。

    • Subchart:选择本次发布中包含的 Subchart,可选全部或部分 Subchart。

    备注

    Dry run 支持仅渲染模板,不实际创建资源,可在日志中查看渲染结果,用于模板调试。


    ../../../_images/new_chart_publish.png
  5. 全局变量 一栏中,更改或输入所需变量的值。点击 全局变量 旁的问号,查看当前 values.yaml 文件中原始内容。

  6. 自定义变量 一栏中,填写自定义变量的值。

  7. 点击 发布,开始应用发布。

查看发布结果

发布开始后,发布单状态变为 运行中,可在日志一栏中,查看应用发布运行的状态和结果。

查看发布历史

通过以下步骤查看应用发布的历史信息:

  1. 在 Chart 列表中,找到目标 Chart,点击 Chart 名称,打开 Chart 详情页。

  2. 点击 发布历史 标签,选择应用发布的环境和集群,查询 Chart 在该环境的发布记录。

    ../../../_images/chart_publish_history.png
  3. 在 ID 列表中,点击应用发布 ID,打开 发布详情 页,查看该发布的详细信息和日志。

  4. (可选)点击 重新发布,修改发布配置信息后,重新开始发布应用。

    ../../../_images/chart_publish_again.png

后续操作

应用发布完成后,线上验证应用发布是否成功。