Балансировка нагрузки на уровне Docker с помощью ECS

Я использую эластичный бобовый стебель для развертывания веб-сервисов в виде контейнеров Docker на AWS с помощью ECS. Балансировщик нагрузки по умолчанию, доступный в EBS, обеспечивает автоматическое масштабирование на уровне сети для обработки нагрузки на инстанс EC2.

Как обрабатывать автоматическое масштабирование на уровне приложения и использовать функции докеризации с помощью ECS, такие как Kubernetes, обрабатывающие докеры? Я хочу масштабировать свои отдельные докеры, когда они получают больше памяти или ЦП. Пожалуйста, помогите мне добиться этого.


person Rajkumar G    schedule 16.11.2017    source источник


Ответы (3)


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

Поскольку обе эти службы могут быть настроены для ответа на аварийные сигналы CW как для уменьшения, так и для повышения масштаба, вы можете использовать политику аварийных сигналов HIGH cpu / ram, чтобы, например, добавить 1 хост и 2 реплики контейнера и удалить такое же количество при аварийном сигнале LOW.

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

person omu_negru    schedule 16.11.2017

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

Ссылка: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html

person m0hit    schedule 25.12.2017

Это не ответы на этот вопрос. Используя среду докеров с несколькими контейнерами для службы ELB, мы можем указать (в Dockerrun.aws.json) наши службы докеров и их отношения, но мы не можем указать количество экземпляров для отдельных служб. Это означает, что если мы хотим масштабировать наши службы докеров ELB, мы можем сделать это с помощью групп автомасштабирования и сигналов тревоги CloudWatch, но это означает, что будет затронута вся наша среда службы докеров: если у нас есть 3 службы докеров, мы можем масштабировать только их все. вместе, а не по отдельности.

Единственное, что вы можете сделать, - это использовать Elastic Container Service (ecs). В рамках этой службы вы создадите кластер (аналогично подходу Kubernetes), а затем создадите отдельные службы, которые смогут запускать несколько задач, и каждая задача будет спецификацией для отдельного контейнера докеров. Таким образом, вы сможете запускать свои службы желаемым образом и соответствующим образом масштабировать их.

person branko terzic    schedule 29.03.2018