У меня есть кластер ECS с ELB. Вчера вечером я увидел, что задача застряла в цикле перезапуска. В журнале событий службы было сказано:
«служба xxxxx не смогла разместить задачу, потому что нет контейнера. экземпляр соответствовал всем его требованиям. Самое близкое соответствие экземпляр-контейнер xxxxxxxxxxxxxx уже использует порт, требуемый ваша задача. "
Однако я проверил, что все такие задачи не работают и ничто не должно использовать порт в то время. Обновление службы не помогает, но помогает создание нового определения задачи, а затем обновление. Завершение работы экземпляра и разрешение ELB для перезапуска помогает.
Есть идеи, почему служба не может защитить порт для задачи?
Я думаю, что ваша проблема в определение задачи «Сетевой режим» - это хост или что-то, что работает одинаково, это приводит к тому, что порт хоста уже используется, когда ECS запускает развертывание.
Способ развертывания ECS использует ваш минимальный процент работоспособности, поэтому, если у вас больше 0 %, ему необходимо запустить новую задачу перед остановкой старой. В этом случае он не может привязать порт хоста к новой задаче, потому что он используется старой.
Попробуйте использовать другой сетевой режим, который не блокирует порт хоста, например "awsvpc"
Надеюсь, это поможет!