Я настроил среду с двумя установками docker (хосты).
Я включил SWARM и создал службу с двумя репликами одного и того же веб-приложения, сопоставляя ведущий-хост http / https порты в контейнеризованные порты приложения.
Как и ожидалось, на каждом хосте создается один контейнер, и каждый HTTP-запрос правильно распределяется между контейнерами благодаря оверлейной сети, созданной Swarm.
В моем приложении мне нужны контейнеры для связи (через https / soap) с другим веб-сервером, все еще не в контейнере. Этот вторичный веб-сервер должен принимать soap звонков, а затем отвечать другим звонком SOAP на cantainer, который отправляет запрос, асинхронным способом.
По этой причине мне нужно вторичное веб-приложение напрямую отправлять запросы в указанный контейнер c. Чтобы сделать это, я подумал использовать оверлейную сеть (созданную пользователем): таким образом каждому контейнеру в кластере будет назначен свой IP-адрес.
Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти какой-либо способ позволить вторичному веб-приложению (находящемуся в локальной сети компании в той же подсети хостов docker) достичь оверлейной сети, чтобы обратиться к указанному c контейнеру с его IP-адресом оверлея.
Вот изображение, которое пытается прояснить сценарий: проблема отмечена красными стрелками:
Сценарий
Есть идеи?
Спасибо много заранее