滚动升级是指通过任务形式批量更新ECS实例配置。通过滚动升级,您可以为伸缩组内处于服务中状态的ECS实例批量更新镜像、执行脚本或者安装OOS软件包。
前提条件
- 伸缩组所在地域支持运维编排服务OOS。
说明 目前华北1(青岛)、华北6(乌兰察布)、华南2(河源)、美国(硅谷)和阿联酋(迪拜)地域不支持运维编排服务OOS,因此不能使用滚动升级功能。
- 伸缩组中不存在执行中的伸缩活动。
- 如果为伸缩组内ECS实例更新镜像,准备更新用的镜像。
- 如果为伸缩组内ECS实例执行脚本,准备执行用的脚本。
- 如果为伸缩组内ECS实例安装OOS软件包,提前在OOS中创建软件包,具体操作请参见批量管理我的软件。
背景信息
滚动升级支持的任务类型如下表所示。
任务类型 |
说明 |
镜像更新 |
适合为伸缩组内ECS实例统一更新操作系统。
说明 更新镜像时,对组内实例配置信息来源的影响如下:
- 如果伸缩组的组内实例配置信息来源为伸缩配置,会自动更新当前生效的伸缩配置中的镜像,但不会更新其他失效的伸缩配置中的镜像。
- 如果伸缩组的组内实例配置信息来源为启动模板,不会更新启动模板的镜像,您需要自行更新启动模板中的镜像。
|
脚本执行 |
适合执行单项或多项运维操作。例如:
- 查看和更新部分系统配置,例如查看磁盘使用空间。
- 安装常用软件,例如安装Apache。
- 部署业务代码。
|
安装OOS软件包 |
适合批量安装和卸载软件。 |
使用限制
- 只能为处于服务中状态的ECS实例滚动升级。
- 同一时间只能执行一个滚动升级任务。
创建并执行滚动升级任务
- 登录弹性伸缩控制台。
- 在顶部菜单栏处,选择地域。
- 在左侧导航栏中,单击伸缩组管理。
- 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。
- 在伸缩组名称/ID区域,单击伸缩组ID。
- 在操作区域,单击查看详情。
- 在页面上方,单击滚动升级。
- 单击创建执行任务。
- 在创建执行任务对话框,完成滚动升级任务的配置,然后单击创建任务。
需要配置的信息如下表所示。
配置项 |
说明 |
任务描述 |
填写任务的说明,以便日后追溯。 |
任务类型 |
- 镜像更新:用于替换ECS实例的当前镜像,支持选择公共镜像、自定义镜像、共享镜像和镜像市场镜像。替换过程中会重启ECS实例。请继续指定以下信息:
- 用于更新的镜像:在执行更新任务时使用的镜像。
- 用于回滚的镜像:在执行回滚任务时默认使用的镜像。
说明 创建回滚任务时默认选择该镜像,但支持选择其它镜像。
- 脚本执行:通过云助手执行脚本,执行过程中ECS实例不会停机。请继续指定以下信息:
- 脚本类型,支持以下三种脚本:
- Linux Shell:例如显示主机名命令hostname、回显hello命令echo hello。
- Windows Bat:例如显示目录文件命令dir c:\。
- Windows PowerShell:例如显示服务命令Get-Services。
- 用于执行的脚本:在执行更新任务时使用的脚本。
- 用于回滚的脚本:在执行回滚任务时默认使用的脚本。
说明 创建回滚任务时默认填入该脚本,但支持编辑自动输入的脚本。
- 安装OOS软件包:选择OOS软件包名称和版本。
|
执行批次 |
完成本次任务批次数。伸缩组执行任务时,将ECS实例分成几个批次,每批次至少包括一台ECS实例。例如伸缩组内有10台服务中的ECS实例,执行批次为2,则5台ECS实例为一批,分2批执行任务。 |
暂停策略 |
- 不暂停:一次性执行完成。
- 第一批暂停:第一批次执行完成后,伸缩组暂停执行任务,您需要手动继续。第一批次之后的批次不会暂停。
- 每批暂停:每批次执行完成后,伸缩组暂停执行任务,您每次都需要手动继续。
|
- 阅读滚动升级任务的影响,如无疑问,单击确定。
确定后滚动升级任务会自动执行。开始执行后,对伸缩组和ECS实例有以下影响:
- 伸缩组暂停扩缩容等流程,在滚动升级过程中不响应伸缩活动,并在执行完毕后恢复扩缩容等流程。如果在执行前扩缩容流程已被手动暂停,则保持暂停,保证执行前后的伸缩组内流程状态一致。
- 分批将ECS实例转为备用中状态,并在执行完毕后恢复服务中状态。
说明 如果伸缩组关联了负载均衡实例,ECS实例处于备用中状态时负载均衡权重会被置零,不接收业务流量。
- 根据滚动升级任务的执行情况,完成相关操作。
- 如果暂停策略为第一批暂停或每批暂停,会进入一次或多次等待中(批次暂停)状态。此时请确认已执行完成的ECS实例是否符合预期。如无疑问,请按以下步骤操作:
- 在操作区域,单击继续。
- 在继续执行任务对话框,单击确定。
- 滚动升级任务执行失败时会进入等待中(失败暂停)状态,如果需要完成本次滚动升级任务,请按以下步骤操作:
- 在操作区域,单击详情。
- 找到执行状态为失败的ECS实例,在操作区域,单击重试、跳过或取消。
- 单击重试,再次尝试为该实例执行。
- 单击跳过,为下一台ECS实例执行操作,且当前ECS实例的执行状态显示为成功。
注意 您需要手动将跳过执行的ECS实例移出备用中状态。
- 单击取消,为下一台ECS实例执行操作,但当前ECS实例的执行状态显示为失败。
- 如果需要取消本次滚动升级任务,在操作区域,单击取消。
注意 取消任务后,您需要手动恢复被暂停的伸缩组流程,并将当前批次任务执行中和执行失败的ECS实例移出备用中状态。
- 如果需要回滚本次滚动升级任务,请参见回滚已滚动升级的任务。
回滚已滚动升级的任务
您可以回滚等待中的(包括批次暂停和失败暂停)或者最近一次执行的滚动升级任务,以便在出现异常时恢复ECS实例配置。不支持对回滚任务进行回滚操作。
说明 如果滚动升级任务处于等待中状态,执行回滚任务前会取消滚动升级任务,然后回滚已经完成更新的实例。
- 在执行任务列表页面,找到待操作的任务,在操作区域,单击回滚。
- 在创建回滚任务对话框,完成回滚任务的配置。
需要配置的信息如下表所示。
区域 |
说明 |
任务描述 |
填写回滚任务的说明,以便日后追溯。 |
任务类型 |
和源任务的任务类型一致,不可编辑。
- 如果为镜像更新,自动选择您创建滚动升级任务时输入的回滚用镜像,支持重新选择其它镜像。
- 如果为脚本执行,自动输入您创建滚动升级任务时输入的回滚用脚本,支持编辑自动输入的脚本。
- 如果为安装OOS软件包,自动选择您创建滚动升级任务时选择OOS软件包版本,支持重新选择版本,但不支持选择其他软件包。
|
执行批次 |
完成本次任务批次数。伸缩组执行任务时,将ECS实例分成几个批次,每批次至少包括一台ECS实例。例如,伸缩组内有10台服务中的ECS实例,执行批次为2,则5台ECS实例为一批,分2批执行任务。 |
暂停策略 |
- 不暂停:一次性执行完成。
- 第一批暂停:第一批次执行完成后,伸缩组暂停执行任务,您需要手动继续。
- 每批暂停:每批次执行完成后,伸缩组暂停执行任务,您每次都需要手动继续。
|
- 单击创建任务。
- 阅读回滚任务的影响,如无疑问,单击确定。
确定后回滚任务会自动执行。
查看滚动升级任务详情
您可以查看滚动升级任务的信息,并单独为某台ECS实例执行重试、跳过等操作。
- 在执行任务列表页面,找到待操作的任务,在操作区域,单击详情。
- 查看任务基本信息。
任务基本信息包括任务状态、任务类型等信息。如果任务类型为脚本执行,单击脚本详情可以查看脚本的内容。
- 查看执行实例列表。
执行实例列表显示处于各个执行状态的实例。
- 如果一台ECS实例尚未执行完成,支持跳过或取消。
- 如果一台ECS实例执行失败,在操作区域,支持重试、跳过或取消。
- 如果任务类型为脚本执行,在结果输出区域,单击查看可以查看执行脚本的输出结果。
重试、跳过和取消的区别如下:
- 单击重试,再次尝试为该实例执行。
- 单击跳过,为下一台ECS实例执行操作,且当前ECS实例的执行状态显示为成功。
注意 您需要手动将跳过执行的ECS实例移出备用中状态。
- 单击取消,为下一台ECS实例执行操作,但当前ECS实例的执行状态显示为失败。