【发布时间】:2016-12-03 08:38:47
【问题描述】:
我想要一个缩减策略,当 CPU 低于 30% 时节点会缩减。
如何控制选择用于缩减的单个实例是 CPU 最低或至少 CPU 低于 30% 的实例?
【问题讨论】:
标签: amazon-web-services amazon-ec2 autoscaling
我想要一个缩减策略,当 CPU 低于 30% 时节点会缩减。
如何控制选择用于缩减的单个实例是 CPU 最低或至少 CPU 低于 30% 的实例?
【问题讨论】:
标签: amazon-web-services amazon-ec2 autoscaling
默认情况下,Auto Scaling 首先确定哪个可用区拥有最多的实例(或者,如果它们相等,它会选择一个随机 AZ)。然后,它使用 Termination Policy 来确定要control which instance Auto Scaling terminates during scale-in 的实例。
但是,Auto Scaling 不会根据具体的“忙碌”程度来选择实例 - 毕竟,几秒钟后,该实例可能更忙或不那么忙。
幸运的是,Auto Scaling 使用connection draining 允许进行中的请求在实例终止之前完成。因此,理论上,实例暂时繁忙是没有关系的。
如果您不想中断实例上的长时间运行任务,您可以配置 Auto Scaling Lifecycle Hooks 将实例移动到 Terminating:Wait 状态。实例不会收到任何新流量。然后,您的应用程序可以在长时间运行的任务完成时发出信号(例如,将日志文件复制到 S3,或完成视频渲染),然后 Auto Scaling 将终止实例。
最后,如果您想要对将终止哪个实例进行更多细粒度控制,您(或您的应用程序)可以通过管理控制台或describe-auto-scaling-instances API 调用专门Detach EC2 Instances From Your Auto Scaling Group。
【讨论】: