Назад | Перейти на главную страницу

Остановленная задача ECS не освобождает порт

У меня есть кластер ECS с ELB. Вчера вечером я увидел, что задача застряла в цикле перезапуска. В журнале событий службы было сказано:

«Сервис xxxxx не смог разместить задачу, потому что ни один экземпляр контейнера не отвечал всем его требованиям. Ближайший соответствующий экземпляр контейнера xxxxxxxxxxxxxx уже использует порт, необходимый для вашей задачи».

Однако я проверил, что все такие задачи мертвы, и в то время ничто не должно использовать порт. Обновление службы не помогает, но помогает создание нового определения задачи, а затем обновление. Завершение экземпляра и разрешение ELB перезапустить его помогает.

Есть идеи, почему служба не может защитить порт для задачи?

Я думаю, ваша проблема заключается в определении задачи «Сетевой режим» - это хост или что-то, что работает одинаково, это приводит к тому, что порт хоста уже используется, когда ECS запускает развертывание.

При развертывании ECS используется ваш минимальный процент работоспособности, поэтому, если у вас более 0%, необходимо запустить новую задачу, прежде чем останавливать старую. В этом случае он не может привязать порт хоста к новой задаче, потому что он используется старой.

Попробуйте использовать другой сетевой режим, который не блокирует порт хоста, например "awsvpc"

Надеюсь, поможет!