版权声明:本文由腾讯云容器服务 原创文章,转载请注明出处:
文章原文连接:https://www.qcloud.com/community/article/216046001482723263shell
来源:腾云阁 https://www.qcloud.com/communityubuntu
做者介绍:于广游 腾讯云后台开发工程师 欢迎加入腾讯云容器服务QQ交流群434653499
curl
滚动升级是一种多副本服务的升级方式,其特色是可以保证升级过程当中服务不中断,对外界无感知。其原理大体为循环的执行如下步奏直至全部容器都被更新url
咱们有如下两个镜像 spa
镜像hello_bye:hello启动的容器,对其80端口,'/'路径执行Get操做会返回: {"message":"Hello"}code
root@VM-0-86-ubuntu:/data# curl -k 'http://xxx.xxx.xxx.xxx' {"message":"Hello"}
镜像hello_bye:bye启动的容器,对其80端口,'/'路径执行Get操做会返回: {"message":"Bye"}blog
root@VM-0-86-ubuntu:/data# curl -k 'http://xxx.xxx.xxx.xxx' {"message":"Bye"}
首先,咱们使用hello_bye:hello镜像建立一个带有外网LB的服务,名为hellobye,点击“更新服务”按钮开发
在弹出的更新服务页面中修改镜像版本为Bye get
点击开始更新前,在云主机上执行如下命令,其中xxx部分为hellobye服务外网LB的IP,并点击开始更新按钮。it
#!/bin/sh while true do curl -k 'http://xxx.xxx.xxx.xxx' done
回到容器服务控制台,服务列表页,会看到hellobye状态变为更新中,此时点击查看进度按钮,在弹窗中可查看服务更新进度
随着更新进度的变化,会看到刚才执行shell脚本的云主机上,返回值中{"message":"Bye"}的占比愈来愈大最终所有变为{"message":"Bye"}
{"message":"Hello"} {"message":"Hello"} {"message":"Hello"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Hello"} {"message":"Hello"}
{"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Hello"} {"message":"Hello"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"}
{"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"} {"message":"Bye"}
在更新过程当中,您随时能够点击暂停更新按钮来暂停滚动升级,此时服务状态会变为“暂停更新”,您也能够点击继续更新按钮来继续服务的更新
在更新过程当中,您也能够随时点击“回滚”按钮来终止本次更新并将已升级的容器恢复到原始版本