【问题标题】:Why scale-in protection doesnt work for the instance为什么缩减保护不适用于实例
【发布时间】:2021-04-07 16:59:05
【问题描述】:

我有一个 aws asg -> 配置:min=2,max=2,期望容量 =2 我这样做了

  1. 设置具有缩减保护的实例。

  2. 暂停启动过程和 ReplaceUnhealthy 以避免创建新实例终止已停止的实例。

     aws autoscaling set-instance-protection --instance-ids i-xxxxxxxxxxxx --auto-scaling-group-name xxxxxxxxxxxxxxxx --protected-from-scale-in
    
     aws autoscaling suspend-processes --auto-scaling-group-name xxxxxxxxxxxxxxxxxxx --scaling-processes Launch ReplaceUnhealthy
    
    aws ec2 stop-instances --instance-ids i-xxxxxxxxxxxxxx
    

到目前为止一切都很好。 现在恢复我所做的更改

aws ec2 start-instances --instance-ids xxxxxxxxxxxxxxxxxxx

实例再次启动

 aws autoscaling resume-processes --auto-scaling-group-name xxxxxxxxxxxxxxxxxxxxxxxxxx --scaling-processes Launch ReplaceUnhealthy
  • 现在在这个命令之后 asg 启动一个新的实例,使它成为 3 然后删除不应该发生的旧实例,新的 不应启动实例,而应仅启动旧实例 又开始了。
  • 这意味着缩减保护不起作用。

为什么缩减不起作用,它需要满足什么条件来保护再次启动的实例以防止被终止并防止启动新实例。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-auto-scaling


    【解决方案1】:

    我认为这可以通过ReplaceUnhealthyworks来解释:

    只要您恢复 ReplaceUnhealthly 流程,Amazon EC2 Auto Scaling 就会替换在此流程暂停期间标记为不正常的实例

    因此,即使您暂停了 ReplaceUnhealthy,在此期间您的实例由于停止它而变得不健康。当进程恢复时,ASG 会“记住”该实例曾一度出现故障,并在您恢复进程时替换它。

    【讨论】:

    • 所以如果我需要阻止它在我恢复停止的实例后终止,我应该暂停Health Check 进程吗?
    • @JatinMehrotra 我不确定。您可以对其进行测试,看看效果如何。
    • 它对我有用。所以我没有做这一切,而是意识到仅暂停 health check 就可以完成这项工作
    猜你喜欢
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    相关资源
    最近更新 更多