You need to enable JavaScript to run this app.
导航

Kubernetes 滚动发布

最近更新时间2022.09.19 10:58:24

首次发布时间2022.04.15 23:52:54

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

背景信息

Kubernetes 滚动发布 任务通过滚动批次、每批比例、等待时间 3 个参数控制具体的部署策略。
例如:10 个实例分 3 批部署,批次比例为 30%、30%、40%,等待时间为 5 分钟。则 10 个实例将分 3 批进行滚动升级,每批升级数量为 3、3、4。每批升级完成后,任务将进入暂停状态,需人工确认是否开始下一批升级。若超过 5 分钟仍未确认,则判断部署失败,系统自动触发回滚操作,回滚到升级前版本。

前提条件

  • 滚动发布任务使用 Service 关联多个 Deployment 版本,请确保您已提前配置集群的 Service 信息。容器服务集群配置 Service 的具体操作可参考 配置服务
  • 已接入待部署的集群,具体操作请参见 接入部署资源
  • 若目标镜像为私有镜像,请注意在部署集群提前设置密钥或配置免密组件。在容器服务配置可参考 配置保密字典配置免密组件

使用限制

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

添加任务

创建或编辑流水线时,在 流程配置 页签,单击 添加任务,弹出 添加任务 抽屉。任务模板选择 Kubernetes 滚动发布

参数说明

请按要求配置 Kubernetes 滚动发布任务。
alt

配置项说明
步骤名称默认为 Kubernetes 滚动发布,支持自定义步骤名称。
部署资源选择已接入的待部署集群。
命名空间选择或输入待部署应用所在的命名空间。
服务名称选择或输入 Kubernetes 滚动发布的目标 Service。
Service 用于在滚动发布中关联多个应用版本,保证整个发布过程平滑可靠,服务不中断,用户无感知。

应用类型

设置 Service 关联的工作负载类型及名称。

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

镜像

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

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

部署策略

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

  • 滚动批次:设置分批发布策略的批次。每个批次发布完成后流程进入等待状态,需人工确认是否继续部署。 默认为 3 次,可选范围:2 ~ 10 次。
  • 每批比例:设置每批发布的比例。最后一个批次比例由前序批次调整后自动算出,不允许修改。比例之和必须为 100%。
    实例数量 * 每批比例 = 一次升级的数量,若不为整数向下取整,多余的实例最后一批升级完成。
    例如: 10 个实例分 3 批部署,批次比例为 30%、30%、40%,则每批部署数量为 3、3、4。
  • 等待时间:设置用于人工确认的最大等待时间。若超过等待时间仍未人工确认继续部署还是回滚,则判断部署失败,系统自动触发回滚操作,回滚到升级前版本。默认为 300 s,可选范围:1 ~ 7200 s。

发布过程

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

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

说明

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

日志、产物与部署详情

在当前流水线的 最近运行详情 > 运行流程 标签页,单击 Kubernetes 滚动发布任务卡片的标题,查看运行日志、产物、部署详情及任务配置信息。
alt

  • 运行日志:实时展示该任务的运行日志。
  • 部署详情:实时展示新旧版本的实例列表信息,包括实例名称、运行状态、启动时间。所有新版本实例均处于 Running 状态表示发布成功。
  • 配置:展示该任务的配置参数,详情可参考前文的参数说明。
  • 产物:展示该任务使用的目标镜像地址。