ECS автоматическая кластер с отсчетом ec2 - PullRequest
0 голосов
/ 28 января 2019

Для развертывания моего docker-compose я использую AWS ECS.

Все отлично работает, кроме автоматического скейлинга.

При создании кластера ECS,

enter image description here

Я могу определить количество экземпляров.

Поэтому я определил его как 1.

Далее, при создании службы в моем кластере,

Также можно определить количество задач.

Я знаю, что задачи выполняются на экземпляре, поэтому я определил его как 1.

enter image description here

И указать такую ​​политику автоматического скейлинга следующим образом.

enter image description here

Как вы знаете, если процентное соотношение процессора достигает 50 за 5 минут, оно автоматически добавляетзадача.

Так что, завершив настройку, я запускаю тест для тестирования.

В описании службы желаемые задачи увеличены до 2.

Но экземпляр не добавленавтоматически.

В журнале событий:

enter image description here

Возможно, я определил число экземпляров равным 1 в моем кластере, поэтому он может 't начать новое задание.

Почему автоматическая откачка не позволяет автоматически добавлять новый экземпляр в мой кластер?

Есть ли проблемы в моей конфигурации?

Спасибо.

1 Ответ

0 голосов
/ 28 января 2019

Ваш кластер ecs не масштабирует количество экземпляров автоматически.Он автоматически масштабирует количество задач, которые выполняются внутри существующего кластера.Экземпляр ec2 может иметь несколько запущенных задач.Для автоматического масштабирования количества экземпляров вам необходимо использовать облачные часы: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch_alarm_autoscaling.html

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

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

Чтобы решить эту проблему, необходимо использовать динамическийпортирование для вашего кластера ECS.

Существует руководство по тому, как это сделать, которое Amazon предоставляет здесь: https://aws.amazon.com/premiumsupport/knowledge-center/dynamic-port-mapping-ecs/

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

Отображение порта должно быть 0 для порта хоста, а затем номер порта, который ваше приложение использует для порта контейнера.

нулевое значение заставит каждый экземпляр докера в запущенном кластере ECS использовать другой номер для своего хост-порта, устраняя конфликт портов, с которым вы столкнулись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...