1

Большинство документов Docker могут похвастаться тем, что вы можете запускать сотни, даже тысячи контейнеров на одном физическом сервере. Мне интересно, как это выглядит с точки зрения балансировки нагрузки/кластеризации.Кластеризация Докерные контейнеры позади балансировщика нагрузки для HA

Скажем, у меня есть веб-служба RESTful, fizz-service.war. Как правило, с «обычными» виртуальными машинами я могу развернуть эту службу на 50 виртуальных машинах (скажем, fizzsvc01.example.com через fizzsvc50.example.com), а затем балансировать/балансировать эти виртуальные машины за URL-адресом службы, например http://fizz-service.example.com. Когда приходит запрос, балансировщик нагрузки выбирает узел для пересылки запроса на, скажем, fizzsvc34:8080/fizz-service.

Мне интересно, как это работает с контейнерами Docker. Если у меня есть те же 50 контейнеров, проходящих через, скажем, 5 узлов:

  • Могут ли эти узлы быть либо виртуальными машинами, либо физическими серверами?
  • Для контейнеров, работающих на одних и тех же узлах, каждый из них работает на своем собственном порту? В противном случае, как у вас может быть 50 экземпляров службы, работающих на одном и том же порту?
  • Принимая во внимание, что в «обычных виртуальных машинах» балансировщик нагрузки настроен на все виртуальные машины, составляющие пул, а затем я просто развертываю свою службу для каждой виртуальной машины в пуле, как это изменяется с контейнерами Docker? Как мой балансировщик (вероятно, отдельный фрагмент инфраструктуры, такой как F5 или nginx) «знает» обо всех контейнерах, доступных для распределения нагрузки?

Или мой подход к HA/балансировке нагрузки должен измениться, когда я вхожу в Docker-land?

ответ

3

Каждый контейнер будет работать на выделенном порту (обычно назначается Docker), и вам потребуется какой-то механизм для отслеживания каждого контейнера, чтобы создать конфигурацию для вашего балансировщика нагрузки.

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

+0

Спасибо @Mark O'Connor (+1 и зеленый чек) - могу ли я предположить, что контейнеры являются идеальными кандидатами для таких инструментов поиска сервисов, как ZooKeeper/Consul/Eureka? – smeeb

+0

@smeeb Абсолютно и проверять отличный инструмент, называемый регистратором, который может помочь с консулом: http://jlordiales.me/2015/02/03/registrator/ –

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