当ASG容量由0->1转变时, ECS Service Task 创建是否触发?

0

【以下的问题经过翻译处理】 简而言之:如果ECS集群的ASG实例数量从0增加到1,那么Desired=1,Running=0的服务是否应该自动启动任务,还是需要通知或者通过探针探测到?

我有一个ECS EC2后备集群和一个EC2自动缩放组。ASG可以手动或通过某些警报缩小为零。当ASG缩小到零时,ECS会注意到并停止任务,从而导致Desired=1,Running=0。一切顺利。

如果我稍后将ASG扩展到Desired>0(例如,Desired=1)并启动实例,则这些实例会出现在ECS中。然而,它似乎没有触发ECS服务尝试启动任务,现在具备执行此操作的能力,并且期望值为Desired=1,Running=0。

这是预期的行为吗?是否需要以某种方式通知ECS服务,以便它注意到它现在具有部署任务的能力,如果是,则最好的通知方法是什么?

更新:我现在发现ECS将启动任务,但在ASG达到期望容量,新实例已启动并且ECS代理已向ECS注册之后会有一些显着的延迟-所有场合均超过10分钟。这是某种可调整的轮询还是实例预热安全性( instance-warm-up safety)?

profile picture
EXPERTE
gefragt vor einem Jahr50 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 您正在观察ECS的重试行为。如果ECS由于资源不足而无法启动服务中的任务,则ECS将重试调度任务,直到成功(或减少所需数量,从而消除调度替换任务的必要性)。

根据AWS最佳实践,ECS实现了指数退避算法。每次调度失败后,重试间隔会逐渐变长。因此,如果一个任务无法调度一段时间,您在添加新的容量后可能会遇到显著的延迟,直到任务重新调度。10-15分钟是最大重试间隔。

如果您有意终止EC2实例以节省成本,建议您在集群中将ECS服务的期望数量减少,以便它们都适合。如果您使用ECS的EC2自动缩放Capacity Provider,ECS将为您管理ASG的期望数量。或者,您可以使用Fargate,这是一种无服务器的方式,您只需支付正在活动运行的任务。

profile picture
EXPERTE
beantwortet vor einem Jahr

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen