代码之家  ›  专栏  ›  技术社区  ›  tm1701

AWS-ECS-如何在现有ECS(1个EC2)实例上重新部署更新的Docker映像?

  •  0
  • tm1701  · 技术社区  · 7 年前

    首先,我在AWS中创建了一个带有Docker图像的回购协议。

    然后我创建了一个任务定义和一个ECS/EC2集群。最后,我使用集群和任务定义创建了一个服务。很好。

    如何在现有集群上重新部署更新的Docker映像?

    仅使用新(或现有)任务“更新”服务不起作用。即使使用“强制新部署”选项也没有效果。

    2 回复  |  直到 7 年前
        1
  •  11
  •   Rex Lam    7 年前

    如果未在容器定义中指定ECR图像的标记,它将始终获取最新的标记。因此,有两种方法可以实现重新部署。

    1. 确保您的服务有足够的空间部署新任务,例如,如果您需要的话 Number of tasks 如果为1,则必须设置 Maximum percent 到200,意味着您可以允许在执行部署时同时运行1*200%=2个任务,然后只需键入以下命令: aws ecs update-service --cluster <cluster name> --service <service name> --force-new-deployment

    2. 或者在您将映像更新到ECR后,您可以手动终止现有任务并创建新任务(通常,创建过程应由ECS自己完成,只要您的自动缩放配置设置正确)。

        2
  •  2
  •   oddude    7 年前

    根据AWS文档,你不能真的这么做。。。 你可以在这里读- https://docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html

    仅通过“创建任务定义的新修订版” 任务定义->-&燃气轮机;创建新修订

    它将在您的回购协议中使用“最新”版本(当然最好用“最新”标记),或者自己添加标记。

    顺便说一句,我会将这些更新作为ci/cd的一部分,使用json进行自动化处理,除非您已经准备好这样做。