繁体   English   中英

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

[英]AWS - ECS - How can I redeploy an updated Docker image on an existing ECS (with 1 EC2) instance?

首先,我在AWS中创建了一个包含Docker映像的存储库。

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

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

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

如果您没有在容器定义中指定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本身完成)。

根据AWS文档,您无法真正做到这一点...您可以在此处阅读-https: //docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html

仅通过“创建任务定义的新修订版”任务定义->->创建新修订版

它将在您的仓库中使用“最新”版本(当然最好用最新的标签)或自己添加标签。

顺便说一句-除非您已经准备这样做,否则我将使用json作为ci / cd的一部分对这些更新使用自动化过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM