Я пока не нашел решения, поэтому спрашиваю здесь:
Это ситуация, для которой я фиксирую решение:
Мы планируем архитектуру, которая содержит следующие компоненты
У меня почти все полностью настроено. Единственное, для чего у меня нет решения - это балансировка нагрузки на Frontend (Frontend Nginx Server). Мне это нужно только для связи с 1 и с 4. Их количество может меняться, поэтому Nginx должен быть способен знать, сколько контейнеров существует. Обработка сессий работает (Redis Backend) (Проверено с помощью балансировки нагрузки на 8 App-серверах и инструмента для стресс-тестирования). Но я не знаю, как обрабатывать связь между различным количеством серверов приложений и Nginx. Если кто-нибудь может подсказать мне, как это настроить. Любая подсказка по решению этой проблемы будет принята с благодарностью.
Chris
opensvc
предоставляет решение для этого https://docs.opensvc.com/latest/agent.configure.gobtw.html
там есть демонстрация экрана такой кластер на домашней странице
Почему я предлагаю это решение: кластер
opensvc
может быть настроен для использования частного решения для управления DNS в масштабе всего кластера. На основе PowerDNS кластер поддерживает записи DNS всех служб opensvc
, развернутых в кластере. Как только создается новый док-контейнер, на карте DNS появляется новая запись SRV
.
в такой настройке также необходимо развернуть cni
+ weave
, чтобы иметь частный растянутый сетевой IPAM рабочий кластер, чтобы предоставить частный IP-адрес новым контейнерам.
opensvc
завершают картину развертыванием входного шлюза. С одной стороны, он содержит общедоступный IP-адрес, к которому подключаются конечные пользователи приложения, а с другой стороны, он поддерживает список всех контейнеров докеров, фактически обслуживающих приложение.
Все это становится динамическим путем добавления ] opensvc
обслуживает контейнер докеров, который прослушивает события кластера (например, «порожден новый контейнер») и автоматически настраивает входной шлюз для добавления еще одного контейнера докеров в бэкэнд.