在创建新实例并同时增加容器所需数量时,我面临以下问题。由于增加所需数量时实例未运行,因此出现“服务XXX无法放置任务,因为没有容器实例满足其所有要求。”。几秒钟后,新实例启动,但是集群仍然具有“需求数:30,待处理数:0,运行数:3”。换句话说,群集不会“知道”有新实例,也没有创建新容器。
如何避免这种情况?是否有一个参数指示群集监视实例计数,而不是立即增加所需计数?
答案 0 :(得分:1)
在这种情况下,这是ECS的预期行为,原因是ECS服务调度程序包含circuit breaker logic,可限制任务反复启动失败的频率。
当新的容器实例启动时,需要一些时间才能获得 注册到集群,服务似乎受到限制 因为从所需数量增加到注册所需的时间 容器实例添加到群集。
话虽如此,如果您在扩展集群中的实例数后等待约15分钟,则服务调度程序将开始将任务放置在新的容器实例上。
为避免这种情况,应根据Custer预留指标自动缩放ECS群集,因为此ECS群集将事先具有额外的容量来容纳新任务数。
这是扩展ECS集群的tutorial。