AWS ECS: Невозможно разместить задачу

AWS ECS: Невозможно разместить задачу

Я пытаюсь настроить службу AWS с автомасштабированием. Я создал кластер с балансировщиком нагрузки приложений и создал задачу с использованием образа docker, который должен быть открыт на порту 8080 для использования. Я создал службу на основе этой задачи, для которой я установил минимальное и желаемое количество экземпляров на 1 и максимальное на 10, и создал правила для масштабирования вверх и вниз. Однако новые экземпляры не создаются, и все, что я получаю в списке событий с регулярными интервалами, это:

service microrecieverservice не удалось разместить задачу, поскольку ни один экземпляр контейнера не соответствовал всем ее требованиям. Наиболее близкий соответствующий экземпляр контейнера 97d97ce9-967d-49ad-83ad-f4f904aae1f6 уже использует порт, требуемый вашей задачей. Для получения дополнительной информации см. раздел Устранение неполадок.

Я не смог найти ничего подходящего враздел устранения неполадок. Мне удалось вручную добавить еще один экземпляр в кластер, но без изменений в указанных событиях. Я смог подключиться к этому экземпляру по ssh, и там было два образа docker: один был amazon-ecs-agent:latest, а другой был моим определением задачи. В этот момент я попытался отправить запрос REST на сервер, чтобы посмотреть, пройдет ли он, но получил Connection Refused. Примерно в то же время образ docker перезапустился.

В контейнере не запущено ничего, что могло бы использовать порт 8080, а когда я это делаю, netstat -lntpпорт 8080 использует мой образ Docker.

решение1

Скорее всего, ваша задача использует порт 8080 как статический порт.

Поскольку в вашем кластере только один экземпляр, вы не можете обновить свою службу, придерживаясь при этом своей стратегии размещения, которая, скорее всего, требует сначала запустить новую задачу, дождаться успешного завершения проверки работоспособности, а затем остановить старую задачу.

Поскольку единственный экземпляр имеет задачу, запущенную на порту 8080, нет доступного экземпляра, на котором можно было бы запустить задачу.

ИспользоватьДинамическое сопоставление портов ECSили запустите больше экземпляров в своем кластере.

Связанный контент