开发者社区> 问答> 正文

Swarm 集群  发布策略  负载均衡路由蓝绿发布策略


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

场景介绍


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


使用说明


由于每个容器需要暴露主机的端口,所以执行负载均衡路由蓝绿发布过程中,需要确保某个服务容器的个数少于或者等于集群中机器数的1/2;否则,会导致端口冲突。
进行负载均衡蓝绿发布时,您可以考虑先缩容容器到集群机器数量的一半,然后进行蓝绿发布,发布结束后,再扩容到原来的规模。

操作步骤


  1. 登录容器服务管理控制台
  2. 在 Swarm 菜单下,单击左侧导航栏中的应用。
  3. 选择目标应用所在的集群。
  4. 选择目标应用并单击变更配置。
  5. 选择变更的发布模式与新版本服务的配置。模板样例如下:
  6. nginx-v2:
  7.    image: 'registry.aliyuncs.com/ringtail/nginx:2.0'
  8.    ports:
  9.      - 80:80/tcp
  10.    labels:
  11.      aliyun.lb.port_80: tcp://proxy_test:80
  12.    restart: always

单击确定,发布变更。
在发布的过程中,会经历两个状态:
  • 蓝绿发布中:表示新版本的服务尚未启动完成。
  • 蓝绿发布待确认:表示新版本的服务已经启动完成,此时需要进行发布确认或者发布回滚方可进行下一次发布。
    进入应用的详情页面,可以看到新版本的应用和旧版本的应用并存。



[font=PingFangSC, "]单击 [font=PingFangSC, "]路由列表 [font=PingFangSC, "]并单击 [font=PingFangSC, "]设置服务权重 [font=PingFangSC, "]。
如下图所示,旧版本服务的负载均衡权重为 100,新版本服务负载均衡的权重为 0。  要做到零宕机升级,您需要先把新版本的服务的权重值调整为 100,此时新旧服务的权重各占 50%,测试新旧版本的服务都有稳定的流量。
您可以打开一个新的浏览器窗口,访问新的版本
当整个发布流程验证完毕后,在应用列表页面,单击确认发布完成 ,弹出确认对话框。可以选择是否勾选是否自动平滑更新。最后单击确认进行发布确认,方可进行下一次发布。

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

相关电子书

更多
《应用型负载均衡ALB产品解读》 立即下载
阿里云网络-SLB负载均衡产品介绍 立即下载
负载均衡SLB热点问题解答 立即下载