文档

蓝绿发布

更新时间:

蓝绿发布是迭代产品在生产环境安全上线的一种重要手段,提供零宕机部署方式。本文介绍如何通过创建蓝绿发布单发布应用服务。

说明

蓝绿发布单在应用服务维度互斥,即不能通过两个发布单同时发布一个应用服务,且与普通发布单互斥。

前提条件

已创建应用服务,且配置应用服务的 部署和调度策略 时,将部署分组策略设为 共分一组 快速分组

关于分组策略限制说明可参考下表。

部署分组策略

蓝绿发布是否支持

说明

每个 Pod 一组

×

由于蓝绿发布的灰度验证是通过 spanner 来控制,而不是通过应用服务内百分比升级的 Pod 来控制的。

按部署单元分组

×

假设流量配比为 100 : 0,对于流量为 0 的区域,若按部署单元分组,流量无法调配至该区域。

共分一组

/

快速分组

/

共分一组(Beta 单元模式)

×

/

按部署单元百分比并发模式

×

/

创建蓝绿发布单

  1. 登录 LHC 控制台。

  2. 在左侧导航栏单击 发布运维 > 发布单

  3. 在发布部署大盘,单击 创建发布单

  4. 配置基本信息。

    • 标题:发布标题。

    • 类型:支持 蓝绿发布(入口应用) 蓝绿发布(部署单元维度)两种类型

      说明
      • 蓝绿发布(入口应用):适用于配置了统一接入的入口应用,发布过程中新版本先发布一倍数量的新 Pod,验证没问题后再将老版本的 Pod 回收,整个发布过程需要消耗两倍的应用服务资源。

      • 蓝绿发布(部署单元维度):适用于非单元化的应用服务,发布过程中先切断一个部署单元的入口流量,再全量发布整个部署单元,发布后支持灰度引流验证,验证没问题后再发布下一个部署单元。

    • 命名空间:选择待发布的应用服务所属的命名空间。

    • 应用服务发布列表:您可以在 待选应用服务列表 中单击选择需要的应用服务,单击 添加 将应用服务添加到 已选应用服务列表 中。

      说明
      • 若应用服务存在多个提交版本,需要选择要发布的版本。默认选择最新的版本。

      • 蓝绿发布单选择的应用服务上一次部署状态必须是成功的,保证有一个完整的蓝版本在线。

      • 蓝绿发布单选择的版本与当前运行的版本对比,不能有统一接入的配置变更。

      • 蓝绿发布单选择的两个版本不能有拓扑变更,比如从 Cell A 变为 Cell B。对于副本数变更,不属于拓扑变更。

    • 引流应用服务:仅当发布类型为 蓝绿发布(部署单元维度)时可见,选择需要引流的应用服务。

      说明
      • 引流应用服务上一版本必须发布成功。

      • 引流应用服务版本不能删除/添加统一接入,也不能删除/添加部署单元。

      • 引流应用服务必须带有非单元化的路由(Ingress)。

      • 引流应用服务必须与上文在 应用服务发布列表 中选择的应用服务部署单元相同。

    • 部署单元发布顺序:仅当发布类型为 蓝绿发布(部署单元维度)时可见,手动更改部署单元的发布顺序。

  5. 单击 下一步,进行高级配置。

    设置应用服务依赖关系:当选择了 2 个及以上应用服务时,可能需要填写应用服务之间的依赖关系。如果应用服务之间不存在依赖关系,则直接跳过。

    依赖于 列中输入某个应用服务所依赖的服务名称(可以同时选择多个)。您可通过逐条添加的方式添加依赖关系。

    例如,如果 appservice1 依赖 appservice2,则在 appservice1 对应的 依赖于 列中输入 appservice2 即可,依赖于多个应用服务时同理。

    重要

    应用服务之间不可循环依赖,即不可出现应用服务 A 依赖于应用服务 B,同时应用服务 B 又依赖于应用服务 A 这种情况。

  6. 单击 下一步,预览已经配置好的发布单信息。

  7. 预览 页面确认信息无误后,单击 创建。系统会自动跳转到 发布单详情 页面,单击 整体发布 即可开始发布。

查看蓝绿发布单详情

发布单创建完成后,系统会自动跳转到 发布单详情 页面,您可以查看发布单的执行详情。下文将根据蓝绿发布类型的不同分别介绍 蓝绿发布(入口应用) 蓝绿发布(部署单元维度)两种发布单详情。

说明
  • 若发布单初始化失败,则无法进行发布,可以将鼠标悬停到 失败原因 上,查看具体原因,或单击 重新初始化

  • 蓝绿发布单的蓝版本为当前在线版本。

蓝绿发布(入口应用)

  • 前置任务

    • 执行服务配置变更:若容器服务存在添加或修改 Service 服务配置,执行 Service 服务配置任务,若无则直接跳过。

    • 发布日志配置:若容器服务首次配置日志配置,则执行日志配置前置任务:创建或更新,若无则直接跳过。

  • 应用服务

    若应用服务带有统一接入,可配置蓝绿区流量配比。

    说明

    仅应用服务配置了统一接入,才可以为蓝绿区设置流量配比,即在绿版本发布的过程中进行流量调拨。关于如何为应用服务配置统一接入的信息,请参见 配置统一接入

    • 如果需要自定义蓝绿区流量配比,在应用服务区域单击 配置,在弹框中输入蓝区、绿区流量配比即可。

      image.png
    • 如果未自定义蓝绿区流量配比,流量配比将按 蓝区:绿区 = 100:0(%) 来确定流量分发的比重。随后,将在执行后置任务时,全部流量将流向绿区。

  • 后置任务

    • 流量切换到绿区:若蓝绿发布应用服务,执行流量切换到绿区后置任务。

    • 清理无效服务配置:若容器服务存在删除 Service 服务配置,执行 Service 清理任务,若无则直接跳过。

    • 发布日志配置:若容器服务未配置日志配置或取消日志配置,则执行日志配置后置任务—删除,若无则直接跳过。

  • 后置任务(回滚)

    回退日志配置:若应用服务需回退至无资源状态,且应用服务的日志配置已生效,则执行日志配置的回退任务,若无则直接跳过。

蓝绿发布(部署单元维度)

  • 发布顺序

    该类型在发布时会先切断一个部署单元的入口流量,再全量发布整个部署单元,所以整个发布的顺序如下:

    切除流量 >> 部署单元发布 >> 切换流量 >> 恢复流量

    说明
    • 部署单元发布切换流量 的次数由实际的部署单元数量决定。

    • 完成一个部署单元的部署后,必须进行灰度引流操作,然后单击 确定,切换流量后继续下一个部署单元的部署操作。

    1

    整个发布单按照共分一组的方式,根据部署单元来决定应用的切流发布的顺序。如上图所示,按照 gz00a > rz00a > gz00c 的顺序先后对应用进行切流、发布操作。

  • 灰度引流

    在发布过程中,单击 灰度引流,可调配具体的部署单元流量权重。

    说明

    如果部署单元流量权重为 0,切换流量后可能出现流量损失的情况。

    Image 1

其他操作

  • 蓝绿发布单创建完成后,如需终止蓝绿发布,可单击 取消。具体操作步骤与普通发布的相同,请参见 取消发布。

    说明

    蓝绿发布单取消之后,可能会同时出现多个运行版本,需等到下一次用户主动发布才会自动清除多余版本。

  • 配置应用服务的部署和调度策略时,若开通了 Beta 确认功能,在应用服务发布时,单击 Beta 确认,使应用继续分组发布。具体操作步骤与普通发布的相同,请参见 Beta 确认

  • 若蓝绿发布执行失败,可单击 重试回滚 继续进行操作。具体操作步骤与普通发布的相同,请参见 重试回滚

  • 发布过程中或完成后,您可以查看 Pod 事件,了解 Pod 的调度与运行状态。具体操作步骤与普通发布的相同,请参见 查看 Pod 事件。

  • 本页导读 (0)
文档反馈