AWS ECS:无法放置任务

Jon*_*ick 5 amazon-web-services autoscaling amazon-ecs

我正在尝试设置具有自动缩放功能的 AWS 服务。我已经创建了一个带有应用程序负载均衡器的集群,并使用应该在端口 8080 上打开以供使用的 docker 镜像创建了一个任务。我根据该任务创建了一个服务,我已将最小和所需的实例数设置为 1,最大为 10,并创建了扩展和缩减规则。但是,没有创建新实例,我定期在事件列表中获得的所有内容是:

service microrecieverservice 无法放置任务,因为没有容器实例满足其所有要求。最接近的匹配容器实例 97d97ce9-967d-49ad-83ad-f4f904aae1f6 已经在使用您的任务所需的端口。有关更多信息,请参阅故障排除部分。

我在故障排除部分找不到任何相关内容。我已经能够手动向集群添加另一个实例,但给定的事件没有变化。我可以通过 ssh 进入这个实例,有两个 docker 镜像:一个是 amazon-ecs-agent:latest,另一个是我的任务定义。此时,我尝试向服务器发送 REST 请求以查看它是否会通过但连接被拒绝。大约在同一时间,docker 镜像重新启动。

容器没有运行任何其他会使用端口 8080 的东西,当我使用端口 8080 执行netstat -lntp该过程时,就是我的 docker 镜像。

M. *_*tki 1

您的任务很可能使用端口 8080 作为静态端口。

由于您的集群中只有一个实例,因此您无法在仍然遵守放置策略的同时更新服务,这很可能需要首先启动新任务,等待运行状况检查成功,而不是停止旧任务。

由于唯一一个实例在端口 8080 上运行任务,因此没有可启动该任务的实例。

使用ECS 动态端口映射,或在集群中启动更多实例。