开发者社区> 问答> 正文

Swarm 集群  发布策略  简单路由蓝绿发布策略



背景信息


蓝绿发布是一种零宕机的应用更新策略。进行蓝绿发布时,应用的旧版本服务与新版本服务会同时并存,同一个应用不同版本的服务之间共享路由,通过调节路由权重的方式,可以实现不同版本服务之间的流量切换。验证无误后,可以通过发布确认的方式将应用的旧版本的服务删除;如果验证不通过,则进行发布回滚,应用的新版本会进行删除。

前置条件


支持蓝绿发布需要将路由服务升级到最新的版本。详细信息参见 升级系统服务

场景介绍


假设您要进行蓝绿发布的应用是一个 Nginx 的静态页面,初始的应用模板如下。nginx-v1:image: 'registry.aliyuncs.com/ringtail/nginx:1.0'labels:aliyun.routing.port_80: nginxrestart: always


操作步骤

  1. 登录容器服务管理控制台
  2. 在 Swarm 菜单下,单击左侧导航栏中的应用。
  3. 选择目标应用所在的集群。
  4. 选择目标应用并单击变更配置。
  5. 选择变更的发布模式与新版本服务的配置。
    • 在蓝绿发布中,新版本与旧版本不能共用同一个名字。
    • 在蓝绿发布的场景中,为了保证应用的零宕机切换,新版本的服务的路由权重默认为 0,需要通过路由管理页面进行调整,方可进行流量切换。
  • 模板样例如下所示:
  • nginx-v2:
  • image: 'registry.aliyuncs.com/ringtail/nginx:2.0'
  • labels:
  •      aliyun.routing.port_80: nginx
  • restart: always
  • 6. 单击确定,发布变更。 在发布的过程中,会经历两个状态:
    蓝绿发布中:表示新版本的服务尚未启动完成。 蓝绿发布待确认:表示新版本的服务已经启动完成,此时需要进行发布确认或者发布回滚方可进行下一次发布。 进入应用的详情页面,可以看到新版本的应用和旧版本的应用并存。
    7.单击路由列表并单击设置服务权重。旧版本服务的权重为 100,新版本服务的权重为 0。要做到零宕机升级,您需要先把新版本的服务的权重值调整为 100,此时新旧服务的权重各占 50%,测试新旧版本的服务都有稳定的流量。
    8. 由于默认路由服务是进行会话保持的,您可以打开一个新的浏览器窗口,访问新的版本
    9. 当整个发布流程验证完毕后,在应用列表页面,单击确认发布完成 ,弹出确认对话框。可以选择是否勾选是否自动平滑更新。最后单击确认进行发布确认,方可进行下一次发布。

    展开
    收起
    青蛙跳 2018-08-31 22:11:47 1238 0
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    低代码开发师(初级)实战教程 立即下载
    冬季实战营第三期:MySQL数据库进阶实战 立即下载
    阿里巴巴DevOps 最佳实践手册 立即下载