我有一个由自动扩展组中的 EC2 计算机支持的 ECS 集群。
该集群使用 CloudFormation 中描述的容量提供程序,代码如下:
CapacityProvider:
Type: AWS::ECS::CapacityProvider
Condition: EnableInstanceAutoScaling
Properties:
AutoScalingGroupProvider:
AutoScalingGroupArn: !Ref InstanceAutoScalingGroup
ManagedScaling:
MaximumScalingStepSize: 10
MinimumScalingStepSize: 1
Status: ENABLED
TargetCapacity: 100
ManagedTerminationProtection: ENABLED
请注意,两者ManagedScaling
and ManagedTerminationProtection
are ENABLED
.
现在,跟随this https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers-create-auto-scaling-group.html我也设置了NewInstancesProtectedFromScaleIn
to true
:
如果在创建容量提供程序时启用了托管终止保护,则 Auto Scaling 组和 Auto Scaling 组中的每个 Amazon EC2 实例也必须启用实例保护以防止缩减。
一切正常,但有时 EC2 实例卡在 ASG 内:
- 它们已从 ECS 集群中取消注册(即不再在那里列出);
- 他们仍然启用了缩减保护;
- ASG 无法终止他们:
并不是所有的情况都会发生这种情况,只会发生在某些情况下,我不知道是哪些情况。我没有任何生命周期挂钩。这会导致 ASG 充满未使用的资源(等于金钱),直到它无法再横向扩展,因为它已达到最大容量。
然后我还发现this https://repost.aws/questions/QU36dcYjSlTBuQ193N6ANkAw/aws-batch-does-not-scale-down-ec-2-instances发布有关 Batch 的类似问题,其中建议的答案是禁用 ASG 缩减保护。
关于如何诊断/解决问题有什么建议吗?
*P.S.在此期间,ASG 将设置所需的能力,例如1、积极尝试扩大规模。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)