使用Auto Scaling组管理实例:无法分离待机状态的实例
解决Auto Scaling组分离待机实例的报错问题
问题场景
ASG配置min-size=1、max-size=1、desired-size=1,当前关联1个运行中实例+1个待机实例,尝试分离待机实例时收到报错:
尝试分离实例失败,AutoScalingGroup.io的min-size=1、max-size=1、desired-size=1。如需分离1个实例,请适当调整Auto Scaling组的大小配置。
解决步骤
- 临时调整ASG配置:将
max-size和desired-size改为2,确保实例数调整后满足分离操作的条件。
示例AWS CLI命令:aws autoscaling update-auto-scaling-group --auto-scaling-group-name AutoScalingGroup.io --max-size 2 --desired-capacity 2 - 执行分离操作:此时分离待机实例后,ASG的实例数仍能保持在
min-size=1以上,不会触发限制报错。
示例AWS CLI命令(--should-decrement-desired-capacity参数会自动将desired-size减1):aws autoscaling detach-instances --instance-ids <待机实例ID> --auto-scaling-group-name AutoScalingGroup.io --should-decrement-desired-capacity - 恢复原有配置:分离完成后,将ASG的
max-size和desired-size改回1,恢复初始设定。
示例AWS CLI命令:aws autoscaling update-auto-scaling-group --auto-scaling-group-name AutoScalingGroup.io --max-size 1 --desired-capacity 1
原因说明
ASG的desired-size设为1,但实际关联了2个实例(运行中+待机),直接分离1个实例会导致desired-size被降至0,违反min-size=1的限制规则,因此触发报错。临时调大配置是为了让分离操作后的实例数仍符合最小实例数要求,操作完成后再恢复原有配置即可。
内容的提问来源于stack exchange,提问作者Teh__docco
相关产品推荐
相关产品推荐

