如何根据 ECS 集群资源可用性扩展 EC2 实例?



我的 ECS 集群中运行着多个服务。每个服务都包含一个或多个基于 CPU 利用率或用户数的任务。 我已经部署了这些具有 EC2 启动类型的容器。 现在,我想根据集群中的可用资源增加/减少 EC2 实例的数量。 假设有两个 m5.large 实例中运行着四个 ECS 任务。

现在,如果 ECS 服务增加了任务数量,并且集群中没有足够的可用资源,如何启动实例并添加到集群?

反之亦然。如果正在运行的实例中没有 ecs 任务,如何自动销毁它?

PS - 我正在使用法盖特。由于成本非常高,我迁移到了 EC2 实例。

您需要在 ASG 中设置 ECS 集群实例 如@Nitesh所述,其次您需要根据关键指标设置 CloudWatch 警报,ECS 很复杂,因为您需要逐个服务设置两个自动扩展策略,另一个策略来扩展您的实例,对于 ec2,您可以使用的指标是集群 CPU 预留和/或集群内存预留。

该方案的工作方式是这样的,您的服务使用服务的关键指标通过自动缩放规则增加所需容器的数量,例如 de CPU 使用率或负载均衡器中的请求数量,因此集群 CPU 预留增加会触发 cloudwatch 警报,您的 ASG 会增加安装次数。

一些提示可以快速扩展,而缩小速度可以慢,这可以通过设置警报的时间来处理

对于容器,请使用服务自动扩展和目标跟踪策略 有关更多信息,请参阅

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html#cluster_reservation

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html

https://aws.amazon.com/blogs/compute/automatic-scaling-with-amazon-ecs/

我希望这有帮助

问候

最新更新