首页 > 解决方案 > 尽管实例数量增加,ECS 仍无法放置任务

问题描述

在创建新实例并同时增加容器所需数量时,我面临以下问题。由于当我增加所需数量时实例未运行,我得到“服务 XXX 无法放置任务,因为没有容器实例满足其所有要求。”。几秒钟后,新实例启动,但是,集群仍然有“Desire count: 30, Pending count: 0, Running count: 3”。换句话说,集群不“知道”有新实例并且没有创建新容器。

我怎样才能避免这种情况?是否有一个参数指示集群监控实例计数,而不是在所需计数增加后立即监控?

标签: amazon-web-servicesamazon-ec2amazon-ecs

解决方案


在这种情况下,这是 ECS 的预期行为,原因是 ECS 服务调度程序包含断路器逻辑,如果任务反复启动失败,该逻辑会限制任务的放置频率。

当一个新的容器实例启动时,需要一些时间才能注册到集群,并且看起来服务正在受到限制,因为从所需数量的增加到将容器实例注册到集群所花费的时间。

话虽如此,如果您在集群中扩展实例数量后等待约 15 分钟,服务调度程序将开始将任务放置在新的容器实例上。

为避免这种情况,ECS 集群应根据 Custer 预留指标自动扩展,因为此 ECS 集群将预先拥有额外的容量以容纳新的任务数。

这是一个关于扩展 ECS 集群的教程。


推荐阅读