【问题标题】:What is the easiest way to "recycle" tasks in Amazon ECS?在 Amazon ECS 中“回收”任务的最简单方法是什么?
【发布时间】:2017-01-20 12:37:16
【问题描述】:

假设在 ECS 中运行的服务有 2 个任务,我想启动一个新版本的基础映像。如果我创建任务的新版本,并更新服务以使用新定义,它将使用新版本启动 2 个新任务,等待它们变得健康,然后注销旧任务。

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

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

【问题讨论】:

    标签: amazon-web-services amazon-ecs


    【解决方案1】:

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

    最简单的方法:

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

    【讨论】:

      猜你喜欢
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 2012-05-08
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多