滚动升级是指通过任务形式批量更新ECS实例配置。通过滚动升级,您可以为伸缩组内处于服务中状态的ECS实例批量更新镜像、执行脚本或者安装OOS软件包。

前提条件

  • 伸缩组所在地域支持运维编排服务OOS。
    说明 目前华北1(青岛)、华北6(乌兰察布)、华南2(河源)、美国(硅谷)和阿联酋(迪拜)地域不支持运维编排服务OOS,因此不能使用滚动升级功能。
  • 伸缩组中不存在执行中的伸缩活动。
  • 如果为伸缩组内ECS实例更新镜像,准备更新用的镜像。
  • 如果为伸缩组内ECS实例执行脚本,准备执行用的脚本。
  • 如果为伸缩组内ECS实例安装OOS软件包,提前在OOS中创建软件包,具体操作请参见批量管理我的软件

背景信息

滚动升级支持的任务类型如下表所示。
任务类型 说明
镜像更新 适合为伸缩组内ECS实例统一更新操作系统。
说明 更新镜像时,对组内实例配置信息来源的影响如下:
  • 如果伸缩组的组内实例配置信息来源为伸缩配置,会自动更新当前生效的伸缩配置中的镜像,但不会更新其他失效的伸缩配置中的镜像。
  • 如果伸缩组的组内实例配置信息来源为启动模板,不会更新启动模板的镜像,您需要自行更新启动模板中的镜像。
脚本执行 适合执行单项或多项运维操作。例如:
  • 查看和更新部分系统配置,例如查看磁盘使用空间。
  • 安装常用软件,例如安装Apache。
  • 部署业务代码。
安装OOS软件包 适合批量安装和卸载软件。

使用限制

  • 只能为处于服务中状态的ECS实例滚动升级。
  • 同一时间只能执行一个滚动升级任务。

创建并执行滚动升级任务

  1. 登录弹性伸缩控制台
  2. 在顶部菜单栏处,选择地域。
  3. 在左侧导航栏中,单击伸缩组管理
  4. 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。
    • 伸缩组名称/ID列,单击伸缩组ID。
    • 操作列,单击查看详情
  5. 在页面上方,单击滚动升级页签。
  6. 单击创建执行任务
  7. 创建执行任务对话框,完成滚动升级任务的配置,然后单击创建任务
    需要配置的信息如下表所示。
    配置项 说明
    任务描述 填写任务的说明,以便日后追溯。
    任务类型
    • 镜像更新:用于替换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批执行任务。
    暂停策略
    • 不暂停:一次性执行完成。
    • 第一批暂停:第一批次执行完成后,伸缩组暂停执行任务,您需要手动继续。第一批次之后的批次不会暂停。
    • 每批暂停:每批次执行完成后,伸缩组暂停执行任务,您每次都需要手动继续。
  8. 阅读滚动升级任务的影响,如无疑问,单击确定
    确定后滚动升级任务会自动执行。开始执行后,对伸缩组和ECS实例有以下影响:
    • 伸缩组暂停扩缩容等流程,在滚动升级过程中不响应伸缩活动,并在执行完毕后恢复扩缩容等流程。如果在执行前扩缩容流程已被手动暂停,则保持暂停,保证执行前后的伸缩组内流程状态一致。
    • 分批将ECS实例转为备用中状态,并在执行完毕后恢复服务中状态。
      说明 如果伸缩组关联了负载均衡实例,ECS实例处于备用中状态时负载均衡权重会被置零,不接收业务流量。
  9. 根据滚动升级任务的执行情况,完成相关操作。
    • 如果暂停策略为第一批暂停每批暂停,会进入一次或多次等待中(批次暂停)状态。此时请确认已执行完成的ECS实例是否符合预期。如无疑问,请按以下步骤操作:
      1. 操作区域,单击继续
      2. 继续执行任务对话框,单击确定
    • 滚动升级任务执行失败时会进入等待中(失败暂停)状态,如果需要完成本次滚动升级任务,请按以下步骤操作:
      1. 操作区域,单击详情
      2. 找到执行状态为失败的ECS实例,在操作区域,单击重试跳过取消
        • 单击重试,再次尝试为该实例执行。
        • 单击跳过,为下一台ECS实例执行操作,且当前ECS实例的执行状态显示为成功
          注意 您需要手动将跳过执行的ECS实例移出备用中状态。
        • 单击取消,为下一台ECS实例执行操作,但当前ECS实例的执行状态显示为失败
    • 如果需要取消本次滚动升级任务,在操作区域,单击取消
      注意 取消任务后,您需要手动恢复被暂停的伸缩组流程,并将当前批次任务执行中和执行失败的ECS实例移出备用中状态。
    • 如果需要回滚本次滚动升级任务,请参见回滚已滚动升级的任务

回滚已滚动升级的任务

您可以回滚等待中的(包括批次暂停和失败暂停)或者最近一次执行的滚动升级任务,以便在出现异常时恢复ECS实例配置。不支持对回滚任务进行回滚操作。
说明 如果滚动升级任务处于等待中状态,执行回滚任务前会取消滚动升级任务,然后回滚已经完成更新的实例。
  1. 在执行任务列表页面,找到待操作的任务,在操作区域,单击回滚
  2. 创建回滚任务对话框,完成回滚任务的配置。
    需要配置的信息如下表所示。
    区域 说明
    任务描述 填写回滚任务的说明,以便日后追溯。
    任务类型 和源任务的任务类型一致,不可编辑。
    • 如果为镜像更新,自动选择您创建滚动升级任务时输入的回滚用镜像,支持重新选择其它镜像。
    • 如果为脚本执行,自动输入您创建滚动升级任务时输入的回滚用脚本,支持编辑自动输入的脚本。
    • 如果为安装OOS软件包,自动选择您创建滚动升级任务时选择OOS软件包版本,支持重新选择版本,但不支持选择其他软件包。
    执行批次 完成本次任务批次数。伸缩组执行任务时,将ECS实例分成几个批次,每批次至少包括一台ECS实例。例如,伸缩组内有10台服务中的ECS实例,执行批次为2,则5台ECS实例为一批,分2批执行任务。
    暂停策略
    • 不暂停:一次性执行完成。
    • 第一批暂停:第一批次执行完成后,伸缩组暂停执行任务,您需要手动继续。
    • 每批暂停:每批次执行完成后,伸缩组暂停执行任务,您每次都需要手动继续。
  3. 单击创建任务
  4. 阅读回滚任务的影响,如无疑问,单击确定
    确定后回滚任务会自动执行。

查看滚动升级任务详情

您可以查看滚动升级任务的信息,并单独为某台ECS实例执行重试、跳过等操作。

  1. 在执行任务列表页面,找到待操作的任务,在操作区域,单击详情
  2. 查看任务基本信息。
    任务基本信息包括任务状态、任务类型等信息。如果任务类型为脚本执行,单击脚本详情可以查看脚本的内容。
  3. 查看执行实例列表。
    执行实例列表显示处于各个执行状态的实例。
    • 如果一台ECS实例尚未执行完成,支持跳过或取消。
    • 如果一台ECS实例执行失败,在操作区域,支持重试、跳过或取消。
    • 如果任务类型为脚本执行,在结果输出区域,单击查看可以查看执行脚本的输出结果。
    重试、跳过和取消的区别如下:
    • 单击重试,再次尝试为该实例执行。
    • 单击跳过,为下一台ECS实例执行操作,且当前ECS实例的执行状态显示为成功
      注意 您需要手动将跳过执行的ECS实例移出备用中状态。
    • 单击取消,为下一台ECS实例执行操作,但当前ECS实例的执行状态显示为失败