Docker - балансировка нагрузки для контейнеров докеров

Если я запускаю несколько контейнеров докеров из одного образа на машине Linux, на которой установлен докер (только одна машина, поэтому без docker-swarm). Нужно ли мне предоставлять докеру какую-либо конкретную конфигурацию балансировки нагрузки, чтобы использовать все контейнеры?

Если докер делает это без какой-либо дополнительной настройки, то какую политику балансировки нагрузки он использует?


person Amit Tank    schedule 02.01.2019    source источник
comment
вы можете использовать возможности nginx для балансировки нагрузки между вашими контейнерами. Я не уверен, возможно ли это чисто с докером   -  person automationleg    schedule 02.01.2019


Ответы (1)


Вам нужен обратный прокси-контейнер, такой как nginx, traefik и т. Д. Docker сам по себе не балансирует нагрузку, вы даже не можете привязать несколько контейнеров к одному и тому же порту вне режима роя.

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

person Siyu    schedule 02.01.2019
comment
Извините, забыл про привязку портовой части. Итак, допустим, если я запустил два контейнера на двух разных портах, и если я использую докер в режиме роя, будет ли docker-swarm отображаться на отдельном порту, и запросы, поступающие от клиента, будут указывать на этот порт? так рой может перенаправить эти запросы в соответствующий контейнер в зависимости от конфигурации? - person Amit Tank; 02.01.2019
comment
В режиме роения вы можете привязать службу к порту. Сервис создает задачи (контейнеры), для которых выполняется балансировка нагрузки. Таким образом, за одним портом у вас будет работать несколько контейнеров. Рой делает это автоматически. - person Siyu; 02.01.2019
comment
Хорошо, это похоже на более чистый способ управления сценариями. Спасибо! - person Amit Tank; 02.01.2019