通过期望实例数功能,您可以一键设定伸缩组内的ECS实例数量,同时灵活地执行并行伸缩活动。
期望实例数介绍
指定期望实例数后,伸缩组会自动将ECS实例数量维持在期望实例数,无须人工干预。期望实例数功能可以有效解决以下问题:
- 伸缩活动执行失败时,需要手动重试。
- 存在执行中的伸缩活动时,不能执行新的伸缩活动,伸缩组利用率低。
新建伸缩组时,填写伸缩组内期望实例数即可自动开启期望实例数功能,已指定期望实例数的伸缩组支持修改期望实例数。
说明 只能在新建伸缩组时开启期望实例数功能,不支持通过修改已有伸缩组开启该功能。
使用期望实例数功能前,请了解以下概念:
概念 | 说明 |
---|---|
稳态实例 | 伸缩组中处于服务中、保护中和备用中状态的实例。 |
并行伸缩活动 | 存在执行中的并行伸缩活动时,可以执行其它并行伸缩活动。包括通过以下方式触发的伸缩活动:
|
非并行伸缩活动 | 存在执行中的非并行伸缩活动时,不能执行其它伸缩活动。并行伸缩活动以外的伸缩活动均属于非并行伸缩活动。包括但不限于通过以下方式触发的伸缩活动:
|
使用限制
- 已指定期望实例数的伸缩组不支持置空期望实例数,即不支持关闭该功能。
- 期望实例数必须小于或等于伸缩组内最大实例数,且必须大于或等于伸缩组内最小实例数。
期望实例数变化规则
除手动设定期望实例数外,执行伸缩活动也可能导致期望实例数变化,具体变化情况和伸缩活动触发方式有关。
伸缩活动类型 | 伸缩活动触发方式 | 伸缩活动效果 | 期望实例数变化 | 示例 |
---|---|---|---|---|
并行伸缩活动 | 手动执行伸缩规则 | 只修改期望实例数,等待期望实例数检查任务触发扩缩容 | 稳态实例数±扩缩容数量 | 场景:
结果: 期望实例数变为6台,但不会立即创建ECS实例,等待期望实例数检查任务触发扩缩容。 |
通过定时任务执行伸缩规则 | 只修改期望实例数,等待期望实例数检查任务触发扩缩容 | 稳态实例数±扩缩容数量 | 场景:
结果: 期望实例数变为6台,但不会立即创建ECS实例,等待期望实例数检查任务触发扩缩容。 |
|
手动添加实例 | 直接触发扩容,然后修改期望实例数 | 当前期望实例数+扩容数量 | 场景:
结果: 4台ECS实例加入伸缩组,稳态实例数变为6台,然后期望实例数变为7台。 |
|
手动移出实例 | 直接触发缩容,然后修改期望实例数 | 当前期望实例数-缩容数量 | 场景:
结果: 1台ECS实例移出伸缩组,稳态实例数变为1台,然后期望实例数变为2台。 |
|
最大最小值检查任务 | - | 需要手动设定期望实例数 | 场景:
结果: 修改失败,您需要同时设定期望实例数。 |
|
实例健康检查任务 | 直接触发缩容 | 期望实例数不变 | 场景:
结果: 期望实例数不变,不健康的ECS实例被移出伸缩组,稳态实例数变为1台。伸缩组检测到期望实例数和稳态实例数间存在差距,会自动执行期望实例数检查任务,触发伸缩活动创建2台ECS实例。 |
|
期望实例数检查任务 | 直接触发扩缩容 | 期望实例数不变 | 场景:
结果: 期望实例数不变。伸缩组检测到期望实例数和稳态实例数间存在差距,会自动执行期望实例数检查任务,触发伸缩活动创建1台ECS实例。 |
|
非并行伸缩活动 | 通过报警任务执行伸缩规则 | 直接触发扩缩容,然后修改期望实例数 | 稳态实例数±扩缩容数量 | 场景:
结果: 触发伸缩活动创建4台ECS实例,然后期望实例数变为6台。 |
并行伸缩活动示例
指定期望实例数后,伸缩组支持同时执行并行伸缩活动,示例如下:
- 示例1:连续手动执行伸缩规则
场景:
- 期望实例数:3台
- 稳态实例数:3台
- 伸缩规则add3要求创建3台ECS实例
- 伸缩规则add1要求创建1台ECS实例
- 手动执行add3,然后立即手动执行add1
结果:执行add3后,期望实例数从3台变为6台。可以立即执行add1,期望实例数从6台变为4台。并行伸缩活动的效果是创建1台ECS实例,伸缩活动结束后,伸缩组的稳态实例数为4台。 - 示例2:手动执行伸缩规则的同时手动添加实例
场景:
- 期望实例数:3台
- 稳态实例数:3台
- 伸缩规则add1要求创建1台ECS实例
- 手动执行add1,然后立即手动添加1台已有ECS实例
结果:执行add1后,期望实例数从3台变为4台。可以立即添加已有ECS实例,期望实例数从4台变为5台。并行伸缩活动的效果是创建1台ECS实例并添加1台已有ECS实例,伸缩活动结束后,伸缩组的稳态实例数为5台。
非并行伸缩活动示例
指定期望实例数后,伸缩组不支持同时执行并行伸缩活动和非并行伸缩活动,示例如下:
场景:
- 期望实例数:1台
- 稳态实例数:1台
- 报警任务伸缩规则要求创建3台ECS实例
- 伸缩规则add1要求创建1台ECS实例
- 报警任务触发后立即手动执行add1
结果:报警任务触发伸缩活动,期望实例数从1台变为4台。由于报警任务触发的伸缩活动属于非并行伸缩活动,不支持立即执行并行伸缩活动,伸缩规则add1被拒绝执行,期望实例数仍为4台。非并行伸缩活动的效果是创建3台ECS实例,伸缩活动结束后,伸缩组的稳态实例数为4台。