Использование traefik для docker внутреннего трафика c через веб-сокеты - PullRequest
6 голосов
/ 17 января 2020

Я использую docker в режиме роя для служб в моем приложении и traefik для обработки траффи c. Моя цель - создать отдельный сервис для каждого раздела API, который есть в моем приложении (например, запросы на domain.com/api/foo_api go к foo_api сервису и запросы на domain.com/api/bar_api go к bar_api сервису.

Теперь все это довольно просто с traefik. Однако я также использую службы API с другими внутренними службами, не связанными с API. Они используют соединение через веб-сокет с внутренним URL docker, поэтому в настоящее время это ws://api:api_port/ws. Однако, если я разделю часть API, мне понадобится что-то вроде ws://foo_api:foo_api_port/ws, которое, очевидно, оставляет службе доступ только к foo_api, а не ко всем остальным.

Так что мой вопрос : Могу ли я перенаправить этот траффи вебсокета c с traefik, похожим на то, как я делаю это внешне, но внутренне в docker net?

1 Ответ

4 голосов
/ 24 января 2020

Traefik - обратный прокси с севера на юг. Исторически сложилось так, что большинство людей в традиционной инфраструктуре используют NGINX или Apache для адресации входящих сообщений - приятно видеть, что вы используете более современный инструмент. То, что вы описываете, представляет собой схему связи между востоком и западом внутри вашего брандмауэра за traefik (при условии, что вы контролируете весь вход через traefik).

Рассматривали ли вы возможность использования обнаружения служб и реестра с помощью таких инструментов, как Hashicorp Consul - https://consul.io?

Идея обнаружения службы заключается в том, чтобы ваши контейнеры / службы внутри роя могли быть обнаружены и доступны через реестр и ссылаться друг на друга по имени без указания имени. труд ручного труда при создании и поддержании сложных поисков IP-адресов. Большинство понимают это исторически в более устойчивой модели DNS SRV, которая требует внешнего запроса. Консул все еще может поддерживать эту унаследованную ссылочную интеграцию.

Этот сайт может помочь вам в этом: https://attx-project.github.io/Consul-for-Service-Discovery-on-Docker-Swarm.html

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

...