ECS滚动更新:健康任务被杀死

时间:2018-11-20 12:16:07

标签: amazon-web-services docker amazon-ecs

我有一个正在运行2个任务的现有服务。我用新的任务定义更新了现有服务,而旧的服务定义已被废止。新任务失败,但旧任务被终止,服务尝试启动新任务,但失败了。这导致根本没有任何任务在运行。 无法完成新任务的原因是由于我的代码中存在错误。但是,ECS不应该确保当新任务没有启动时,旧的健康任务仍在运行。

ECS何时决定终止旧任务? 我知道任务状态变为“正在运行”。 “跑步”是否意味着健康?在进一步调试中,我发现有问题的任务处于运行状态一段时间。

2 个答案:

答案 0 :(得分:1)

好吧,让我解释一下发生了什么

更新任务定义(假设您正在运行其中的某些任务)时,ECS会尝试执行蓝绿色部署,即等待具有 ready 状态的新任务,然后停止旧的。

现在,您的任务将在容器启动时进入就绪状态,但是当它尝试执行内部有错误的代码时,它将崩溃并死亡,因此它将再次更改其状态,但已通过就绪状态,因此旧任务已经被杀死。

答案 1 :(得分:0)

我与AWS团队进行了讨论,并得出结论,如果认为新任务没有问题,ECS不会杀死旧任务。当服务与ALB绑定时,ECS不会注销旧任务,直到ALB将新任务标记为正常为止。

相关问题