回收"回收"最简单的方法是什么? Amazon ECS中的任务?

时间:2017-01-13 20:24:24

标签: amazon-web-services amazon-ecs

如果服务在ECS中运行,例如2个任务,我想启动基础映像的新版本。如果我创建了一个新版本的任务,并更新了服务以使用新版本,它将使用新版本启动2个新任务,等待这些任务变得健康,然后取消注册旧任务。

这很好,但这意味着我创建了一堆相同的任务定义,因为图像名称没有改变(它是myapplication:latest)。并且,实验表明,如果我手动停止任务,并让ECS重新启动它,它将使用更新的图像。但是,手动停止任务会导致在更换启动之前立即取消注册,这意味着短时间的停机时间。

据我所知,无法从控制台重新启动图像。 CLI有什么办法吗?或者,我没想到的其他一些技巧?

1 个答案:

答案 0 :(得分:0)

这里没有技巧 - 启动新版本任务(作为服务运行)的正确方法是注册新的任务定义,然后更新服务以指向新的定义。请记住,您的图像存在于任务定义中,该任务定义位于服务中的任务中。

最简单的方法:

  1. 通过CLI注册新的任务定义(例如register-task-definition)。即使您的定义文件中没有任何更改,AWS也会注册新的定义。
  2. 更新指向同一任务的服务,但保留关闭任务修订号。然后,AWS将重新启动两个新服务,等待它们联机,然后使用旧定义停止两个旧任务。
  3. 取消注册旧任务(可选)。您可以运行现有服务,指向已注销的任务定义。