Правильный путь к scailing aws ecs - PullRequest
       31

Правильный путь к scailing aws ecs

0 голосов
/ 11 февраля 2019

Сейчас я проектирую инфраструктуру AWS ECS.

Для автоматического масштабирования я использовал автоматическое скейлинг.

Моя система работает на AWS ECS (для развертывания docker-compose)

Предположим, что у нас есть 1 cluster, 1 service с 2 ec2 instance.

Я определил политику блокировки через CloudWatch, если загрузка процессора достигает 50%.

Для автоматического скейлинга мы должны применить нашу политику к ecs service и autoscailing group.

Когда вы присоедините политику cloudwatch к ecs service, она автоматически увеличит число task definition, если загрузка ЦП достигает 50%.

При прикреплении политики cloudwatch к autoscailing group она автоматически увеличивается на ec2 instance, если загрузка процессора достигает 50%.

После проверки все работает нормально.

Но в моих service журналах событий ошибки выглядят так:

service v1 was unable to place a task because no container instance met all of its requirements. The closest matching container-instance 8bdf994d-9f73-42ec-8299-04b0c5e7fdd3 has insufficient memory available.

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

Но он работает нормально.Может быть, он повторяется автоматически несколько раз.(Я не уверен)

Интересно, это нормальная конфигурация для автоматического масштабирования AWS ECS?

Или какая-то пропущенная точка в моем потоке?

Спасибо.

1 Ответ

0 голосов
/ 11 февраля 2019

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

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

...