介绍
期望实例数是指伸缩组内想要保持的ECS实例总数,可以在创建伸缩组时设置,其数值介于伸缩组最小实例数和最大实例数之间,各种伸缩模式都会改变这个值。伸缩组在设置期望实例数后会自动支持伸缩活动并行执行。
通过设置期望实例数可以解决以下问题:
- 对于以往的伸缩组,用户需要自己维护伸缩组内实例数,如果伸缩活动出现失败,用户需要手动重试。
- 伸缩组同一时间只支持一个伸缩活动,伸缩活动执行可能比较耗时,这期间用户无法调整伸缩组实例数。
- 串行执行伸缩活动导致伸缩组的利用率低。比如扩缩容进行时,健康检查触发的伸缩活动就无法执行。
期望实例数的变化规则
- 期望实例数的值始终介于伸缩组最小实例数和最大实例数之间。
- 用户创建和修改伸缩组时可以指定期望实例数。
- 用户如果只修改伸缩组最大实例数或最小实例数,期望实例数会自动调整介于两者之间,比如期望实例数为2,只调整最小实例数为3,则修改完成后desire值和最小实例数都为3.
- 伸缩组会定时检查当前期望实例数与当前伸缩组中服务中、保护中和备用中的总实例数(以下简称稳态实例数)的差距来触发期望实例数检查任务,如果期望实例数大于稳态实例数则触发扩容任务,反之触发缩容任务。
- 手动执行伸缩规则和定时任务将不再直接触发扩缩容实例,而是修改伸缩组的期望实例数。
- 报警任务和手动添加实例,在扩缩容的同时会修改期望实例数。
- 手动移出/移除实例,可以设置DecreaseDesiredCapacity参数来决定缩容的同时是否修改期望实例数,当DecreaseDesiredCapacity设置为true时,实例会被移出/移除并且期望实例数会相应的减少;反之,期望实例数不会变化。
- 手动执行伸缩规则、定时任务、报警任务的场景下,新的期望实例数会以稳态实例数为基础进行变化。比如当前伸缩组期望实例数为2,当前稳态实例数为2,用户执行扩容3台的伸缩规则,则新的期望实例数为当前稳定态实例数和扩容变化数之和,结果为5;如果当前期望实例数为2,当前稳态实例数为1,用户执行扩容2台的伸缩规则,则新的期望实例数为当前稳定态实例数和扩容变化数之和,结果为3。
- 手动添加、手动移出/移除实例时,新的期望实例数会在当前期望实例数上做相应减少。比如当前期望实例数为5,稳态实例数为3,手动添加1台实例,新的期望实例数为6。
并行伸缩活动介绍
- 只有设置了期望实例数的伸缩组才可以支持伸缩活动并行。
- 目前支持的并行伸缩活动有手动执行伸缩规则、定时任务、期望实例数检查任务、实例健康检查任务、最大最小值检查任务、手动移除/移出、手动添加实例,其中期望实例数检查任务、实例健康检查任务、最大最小值检查任务为系统自动触发。其余伸缩活动为非并行伸缩活动,常见的非并行伸缩活动为报警任务。
- 并行伸缩活动执行时,可以允许其他并行伸缩活动执行,比如当前伸缩组在扩容时,用户可以手动移除实例。
- 非并行伸缩活动执行时, 支持并行的伸缩活动会被拒绝执行。
举例说明
- 场景一 连续执行不同的伸缩规则,没有期望实例数检查任务触发的情况下,查看期望实例数变化。当前期望实例数为4,稳态实例数为4,先执行增加4台的伸缩规则,查看伸缩活动详情如图:
当前稳态实例为4,执行增加4台,因此期望实例数由4变为8。
紧接着执行增加1台实例的伸缩规则,查看伸缩活动详情如图:
当前稳态实例为4,执行增加1台,因此期望实例数由8变为5。
- 场景二 执行两次不同的伸缩规则,查看伸缩活动并行情况。当前期望实例数为3,稳态实例数为3,先执行增加1台伸缩规则,期望值变为4
之后等待触发期期望实例数检查任务
接着执行移除2台实例的伸缩规则。由于上个扩容伸缩活动没有执行完,因此稳态实例数还是为3,期望值变为1。
之后等待触发期望实例数检查任务。
2个任务同时在进行中
由于当前期望实例数是1,当扩容2台的伸缩活动执行完成后稳态实例变为2,又会触发期望实例数检查任务,最终满足期望实例数等于稳态实例数。
- 场景三 非并行任务执行场景。当前报警任务正在触发,报警任务为非并行伸缩活动
执行伸缩规则,由于有非并行伸缩活动在执行因此被拒绝
使用须知
- 伸缩组支持期望实例数的功能目前在控制台灰度执行中。
- 没有设置过期望实例数的伸缩组无法开启这个功能。
- 设置期望实例数后的伸缩组无法将此参数置空。
与未设置期望实例数伸缩组的差异
- 用户不需要自行维护伸缩组内实例数,设置期望实例数后,伸缩组会自动扩缩容以满足期望实例数,如果扩缩容失败系统也会自动重试。
- 手动执行伸缩规则、定时任务将不再直接触发扩缩容实例,而是会修改伸缩组的期望实例数。之后期望实例数检查任务会自动扫描稳态实例数和期望实例数之间的差异从而触发扩缩容任务。
- 手动移除/移出实例、手动添加实例和报警任务会直接触发扩缩容并修改期望实例数。
- 伸缩组支持并行执行伸缩活动,具体支持场景参见上面的并行伸缩活动介绍。