伸缩组触发伸缩规则、健康检查、实例数量检查后,生命周期挂钩可以将新加入/待移出/待删除实例的状态挂起,进入 加入/移出挂起中 状态,此时实例处于等待状态,您可以在这段时间内进行自定义操作,直至生命周期挂钩超时或您手动结束挂起。
适用场景
- 伸缩组加入实例后,需要进行初始化操作(安装或配置软件等)、或绑定辅助网卡等,再挂载负载均衡对外提供服务。
- 伸缩组移出/删除实例前,需要先备份数据或下载日志,再移出/删除实例,确保不丢失重要数据。
- 伸缩组移出/删除实例前,需要先从负载均衡中移出,待实例已接收的请求处理完毕,业务无影响后再移出/删除实例。
相关功能
在批量加入/移出大量实例的场景,生命周期挂钩支持与批量作业关联,通过批量作业在单个或多个执行对象中便捷执行运维命令。本功能使您可以创建一次运维命令,运用到多个实例中,大幅提升运维效率。
说明
本功能当前仅在华北2(北京)、华东2(上海)、华南1(广州)地域开放。
在生命周期挂钩关联批量作业前,您需要首先完成以下准备工作:
- 创建所需的运维命令:火山引擎预置了多种常用运维操作的公共命令供您选择,同时也支持您创建自定义命令。请参见批量作业命令管理查看公共命令或创建自定义命令后,再回到本页面选择。
- 在实例中安装批量作业客户端:通过弹性伸缩自动扩容的实例默认安装客户端。您手动加入的实例则需要提前安装客户端,请参考安装批量作业客户端完成安装。
使用限制
- 单个伸缩组最多可创建的生命周期挂钩数量:6个。
- 生命周期挂钩仅针对由伸缩规则、健康检查和实例数量检查触发的伸缩行为生效,手动伸缩则不适用。
- 实例扩缩容后被挂起时,伸缩组处于 已锁定 状态,不会再执行其他的伸缩行为。
- 删除伸缩组操作为组内资源清除操作,因此不会触发生命周期挂钩。
执行流程和策略
触发生命周期挂钩后,受挂起影响,实例加入/移出时的执行流程和策略稍有不同,如下所述:
- 用于扩容行为的生命周期挂钩:
实例创建完成后,在加入负载均衡前进入挂起状态,当挂钩到达超时时间或批量作业执行超时/失败后,根据挂钩的执行策略继续执行扩容行为。
- 如果执行策略为“继续”,实例将加入负载均衡并对外提供服务。
- 如果执行策略为“拒绝”/“回滚”,实例和已关联资源将回退并删除,伸缩组重新创建新实例。
- 用于缩容行为的生命周期挂钩:将实例移出负载均衡后进入挂起状态,当挂钩到达超时时间或批量作业执行超时/失败后,根据挂钩的执行策略继续执行缩容活动。
- 如果执行策略为“继续”或“拒绝”,实例均会被移出。
- 如果执行策略为“回滚”,实例将回滚至开始移出前的状态,需要重新移出实例。
说明
- 移出时实例及其关联资源是否删除,受实例是否开启托管和实例保护影响,具体说明请参见实例生命周期管理。
- 如果实例挂起时在云服务器控制台中被删除,则自动结束挂起状态。
- 同时触发多个生命周期挂钩:
将触发所有符合条件的生命周期挂钩,在未手动结束的情况下,到达挂钩中最长的超时时间后执行该挂钩的执行策略。如果挂钩超时时间均相同,则“拒绝”策略优先于“继续”策略,即只要存在一个拒绝的执行策略,都将执行“拒绝”策略。
图一 扩容行为流程
图二 缩容行为流程