ECS 停止任务未释放端口

ECS 停止任务未释放端口

我有一个带 ELB 的 ECS 集群。昨晚我发现一个任务卡在了重启循环中。从服务事件日志中可以看到:

“服务 xxxxx 无法放置任务,因为没有容器实例满足其所有要求。最接近匹配的容器实例 xxxxxxxxxxxxxx 已在使用您的任务所需的端口。”

但是,我已检查过,所有这些任务都已停止,并且当时不应有任何任务使用该端口。更新服务无济于事,但创建新的任务定义然后更新会有所帮助。终止实例并允许 ELB 重新启动它会有所帮助。

知道为什么该服务无法保护该任务的端口吗?

在此处输入图片描述

答案1

我认为您的问题是任务定义“网络模式”是主机或同等工作的东西,这导致 ECS 触发部署时主机端口已被使用。

ECS 部署的方式是使用最低健康百分比,因此如果健康百分比超过 0%,则需要先启动新任务,然后再停止旧任务。在这种情况下,它无法将主机端口绑定到新任务上,因为旧任务正在使用该端口。

尝试使用其他不锁定主机端口的网络模式,例如“awsvpc”

希望能帮助到你!

相关内容