我最初定义了一个名为GoogleDriveAPI-prod:1的任务GoogleDriveAPI-prod:1 。 它具有2048的内存硬限制。集群只有t2.medium机器的一个实例。 即使我将所需的任务数量设置为2, ecs只能启动1,因为RAM要求不满足。
但我真的想要运行2个任务。 我将任务的内存硬限制修改为1536.而任务定义已经变成了GoogleDriveAPI-prod:3
更新后会产生一个新任务('f510e1cc-c459-4247-8d3b-59d78106ece7')。
但是,实际上,在更新服务以使用任务定义版本GoogleDriveAPI-prod:3之后,我预计会看到GoogleDriveAPI-prod:3两个任务。但是,您可以在附加的屏幕截图中看到,原始任务未重新启动,并保留任务定义版本1。
我的问题:
当任务定义改变时,ecs如何决定重新生成一个任务? 在这种情况下,只要没有改变Docker镜像的url,ecs就不会重新生成活动任务。
编辑
所以要部署新的容器,我不得不手动杀死两个旧的任务。 ecs开始产卵新的容器
这似乎是主要的原因ECS不能杀死旧的容器,因为现有的服务器不能支持运行所有新的容器进程。
那么这是否意味着我需要有多余的产能来平稳过渡?