You need to enable JavaScript to run this app.
导航
Kubernetes 分批发布
最近更新时间:2024.03.25 16:23:56首次发布时间:2024.03.25 16:23:56

持续交付预置 Kubernetes 分批发布 任务,支持用户设置部署策略,对 Kubernetes 集群上的应用进行按实例分批滚动发布,保证发布过程更加可控。

前提条件

使用限制

  • 当目标应用处于部署中时,不支持重复部署。例如:A 流水线部署 deployment-a 应用的过程中,B 流水线发起的部署 deployment-a 应用任务会自动失败。
  • 目标镜像地址不允许与原镜像地址完全相同,请至少修改目标镜像的版本号。镜像地址用于区分不同的镜像,若目标镜像地址与原镜像地址完全相同,应用的镜像将不会被更新。

添加任务

创建或编辑流水线时,在 流程编排 页签,单击 添加任务,弹出 添加任务 抽屉。任务模板选择 部署 > Kubernetes 分批发布

参数说明

下文为您介绍该预置任务的参数。

说明

Kubernetes 分批发布任务不支持添加其他步骤。

alt

配置项说明
任务名称默认为 Kubernetes 分批发布,支持自定义任务名称。
上游任务展示当前任务的上游串行任务名称。无上游任务时展示为-
部署资源选择已接入的待部署集群。
命名空间选择或输入待部署应用所在的命名空间。

服务名称

选择或输入 Kubernetes 分批发布的目标 Service。

说明

该参数为选填参数。v1 版本中,使用 Service 关联多个 Deployment 版本,保证服务发布过程平滑可靠。v2 版本通过控制 Deployment 的新旧 ReplicaSet 比例实现分批部署,不再依赖该参数。

应用类型

设置待部署的工作负载类型及名称。

  • 选择工作负载类型。工作负载类型支持 Deployment、StatefulSet、DaemonSet、CronJob。
  • 选择或输入工作负载名称。若自行输入,需与您创建工作负载时的名称一致。
容器名称选择或输入待部署的具体 Container 名称,确保 Pod 中存在多个 Container 时应该升级对应的镜像。

镜像

设置要部署的目标镜像地址。支持使用上游产物生成的镜像或您提前准备好的镜像,请按需选择。

  • 上游产物:选择前序镜像打包任务的产出物作为目标镜像。
  • 自定义:输入提前准备好的镜像地址作为目标镜像。镜像地址示例:xxx.com/ns/nginx:v1 。

部署策略

配置分批发布任务的部署策略,包括滚动批次、每批比例、等待时间 3个参数。

  • 滚动批次:设置分批发布策略的批次。每个批次发布完成后流程进入等待状态,需人工确认是否继续部署。
  • 每批比例:设置每批发布的比例。最后一个批次比例由前序批次调整后自动算出,不允许修改。比例之和必须为 100%。
    实例数量 × 每批比例 = 一次升级的数量,若不为整数向下取整,多余的实例最后一批升级完成。
    例如: 10 个实例分 3 批部署,批次比例为 30%、30%、40%,则每批部署数量为 3、3、4。
  • 等待时间:设置用于人工确认的最大等待时间。若超过等待时间仍未人工确认继续部署还是回滚,则判断部署失败,系统自动触发回滚操作,回滚到升级前版本。
任务输出本预置任务无产物输出。
高级设置Webhook 通知:支持通过 Webhook 和飞书机器人两种方式推送任务维度的消息,帮助您及时掌握任务动态。

发布过程

Kubernetes 分批发布任务执行过程中,每一批次发布完成后,流水线都会进入暂停状态,需在有效时间内人工确认是否继续部署。若超过等待时间仍未人工确认,则判断部署失败,系统自动触发回滚操作,回滚到升级前版本。

  • 继续部署:结束等待,继续按照用户配置的分批策略进行下一批次部署。
  • 立即回滚:结束等待,所有实例回滚到升级前版本。

说明

若分批发布任务运行失败,系统将自动触发回滚,回滚到升级前版本。

部署详情

下文为您介绍该预置任务运行完成后,流水线展示的详情信息。
在当前流水线的运行详情页面,单击 Kubernetes 分批发布卡片的标题,查看运行日志、任务详情、任务配置、部署详情等信息。

  • 运行日志:实时展示该任务的运行日志。
  • 任务详情:展示分批批次和每个批次的部署结果。
  • 任务配置:展示该任务的配置参数,详情可参考前文的参数说明。
  • 部署详情:实时展示新旧版本的实例列表信息,包括实例名称、运行状态、启动时间。所有新版本实例均处于 running 状态表示发布成功。