Я настроил рой докеров из двух узлов с управляющим узлом pi-manager
и рабочим узлом pi-worker
в стеке из 2 Raspberry Pi 3 Model 3 B с Raspbian. Я создал образ, который запускает веб-страницу типа helloworld на локальном хосте, который также идентифицирует контейнер, на котором работает страница. Пример:
Из ноды менеджера докеров я могу создать сервис «flairhello», а затем масштабировать его до 2-х континеров (назовем их A и B).
Ожидаемое поведение:
Поведение, которое я ожидал получить, заключалось в том, что при посещении каждого локального хоста я получал веб-страницу с идентификатором контейнера, работающим на этом хосте. Например, если pi-manager
имеет контейнер A
, а pi-worker
имеет контейнер B
. Когда я посещаю локальный адрес pi-manager
, я ожидаю увидеть идентификатор контейнера A
, а когда я посещаю локальный адрес pi-worker
, я ожидаю увидеть идентификатор контейнера B
. Это НЕ то, что происходит.
Текущее поведение:
Поведение, которое я испытываю, заключается в том, что в течение некоторого времени, если я захожу на локальный хост pi-manager
или pi-worker
, я перенаправляюсь на веб-страницу контейнера A
, а затем в течение следующего периода времени независимо от того, какой локальный хост (pi-manager
или pi-worker
) я посещаю. меня всегда направляют в Контейнер B
. Я предполагаю, что это встроенная балансировка нагрузки роя Docker?
Вопросы:
Как я могу использовать балансировщик нагрузки, чтобы получить желаемое поведение от моего роя?
Какие инструменты я должен использовать? Докер сочиняет? Хапрокси образ? (видели эти упоминания из чтения на этом?
Есть ли хорошие учебники для этого процесса?
ОБНОВИТЬ:
Шаги по созданию балансировщика сетевой нагрузки с HAProxy в моем ответе ниже!