场景:

运行的上层业务系统经常需要进行升级,且在升级过程中,需要平滑迁移,不希望业务系统有中断。

解决思路:

利用云平台中的弹性容器服务,解决了开发测试运维一体化的问题,可以对项目进行持续集成、持续交付和持续部署,线上项目无需停机维护,即可进行在线的灰度升级。

准备:

已经在弹性容器服务中创建 ECS 实例并运行了业务系统。

具体步骤:

1、 进入【高级服务→容器服务→任务定义】,找到需要进行灰度升级的任务定义组,点击详情,选中已存在的任务定义并点击新建版本。

2、 选中容器名称,将镜像替换为新版本 v2 的镜像,保存即可。

3、任务定义创建好之后,进入【容器服务→容器集群】,进入对应的业务集群详情页面,查看服务页面,可以看到服务列表,选中需要升级的服务,右击选择“更新服务”,选择灰度升级的新版本任务定义。

4. 为了使服务在升级过程中能够不中断访问、平滑升级,这里可设置服务的最小健康百分比为 100,最大百分比为 400,以确保升级过程中有 ECS 实例在提供服务(最大/小健康百分比乘以任务数量是容器的最多/最少个数,设置最小监控百分比为 100,即意味着过程中至少会有 100%*2=2 个 ECS 实例在运行)。

5、升级过程中,服务不会中断,也可不断访问关联的负载均衡器验证平滑升级不中断。

备注:关于本技巧的更多内容可参考如下视频。

相关功能:

  • BCC-高级服务-容器服务

最新版本:BingoCloudOS 7.0