2016-10-28 3 views
1

Я уже некоторое время изучаю контейнерную упаковку докеров, но мне все еще не все в порядке. Я понимаю, что все контейнеры сгруппированы в кластер и инструменты управления кластерами, такие как Docker Swarm, DC/OS, Kubernetes или Rancher, могут использоваться для управления контейнерами докеров. Я тестировал управление кластерным кластером с помощью DC/OS и Kubernetes, но все еще осталось несколько вопросов.AutoScaling в контейнерах Docker

Как автоматическое масштабирование на уровне контейнера помогает нам на производственных серверах? Как приложение обслуживает трафик из нескольких контейнеров?

Предположим, мы развернули веб-приложение с использованием контейнеров, и они были автоматически масштабированы. Как поток трафика в контейнеры? Как работают сеансы?

Какие показатели рассчитываются для контейнеров для автомасштабирования?

ответ

1

Автомасштабирование в DC/OS (примечание: Мезосфера - компания, DC/OS - проект с открытым исходным кодом), автомасштабирование подробно описано в docs. Как и в случае с Kubernetes, вы можете использовать либо низкоуровневые показатели, такие как использование ЦП, чтобы решить, когда увеличить количество экземпляров приложения или файлов более высокого уровня, таких как пропускная способность приложения, например, используя подход Microscaling.

Что касается вашего вопроса о том, как работает маршрутизация (как запросы отправляются экземпляру, то есть один контейнер работает): вам нужен балансировщик нагрузки, и снова DC/OS предоставляет вам это из коробки. Опять же, параметры подробно описаны в docs, по существу: на базе HAProxy на основе север-юг или на основе IPtables, на базе East-West (кластерных) балансировщиков нагрузки.

+3

В случае DC/OS наиболее распространенным входящий LB - это Marathon-LB, который имеет пример автозагрузки: https://github.com/mesosphere/marathon-lb & https://github.com/mesosphere/marathon-lb-autoscale – KarlKFI

1

Kubernetes имеет концепцию под названием service. Служба Kubernetes - это абстракция, которая определяет логический набор Pods и политику, с помощью которой можно получить к ним доступ. Kubernetes использует сервисы для обслуживания трафика из нескольких контейнеров. Вы можете узнать больше об услугах here.

AFAIK, сеансы управляются за пределами кубернетов, но привязка к сеансу на основе Client-IP может быть выбрана путем установки service.spec.sessionAffinity на «ClientIP». Вы можете узнать больше об аффинности обслуживания и сеанса here

Множество показателей, таких как процессор и память, могут использоваться для автомасштабирования контейнеров. Существует хороший blog, который вы можете прочитать об автомасштабировании, когда и как.

+0

Полезная информация из предоставленных блогов. У меня есть полная информация о том, как настроить кластер kubernetes и все ... мой вопрос заключается в том, как несколько контейнеров обслуживают запрос, поступающий от нескольких пользователей, используя одну услугу? как он балансирует нагрузку и как служба распознает, какой сеанс прикреплен к какому контейнеру, что его использование подходит для живых производственных приложений. – Ali

+1

Есть изображения в том же разделе - http://kubernetes.io/docs/user-guide/services/#virtual-ips-and-service-proxies - вы видели, что служба может вести себя как балансировщик нагрузки. –

+0

Да, это объясняет часть ... но как поддерживаются эти службы? Конфигурации маршрутов и все ... любая идея относительно мезосферы? – Ali

Смежные вопросы