Как лучше организовать доступ к Docker контенерам по FQDNs (full domain names)?
С Наступающим !
вопрос такой, больше для размышления и понимания Docker архитектуры!
имеется несколько приложений на backende (5-10), которые работают в контейнерах. Все контейнеры пока ! умещаются на одном хосте. Отдельный контейнер используем для работы HAProxy. Запускаем их все (включая HAProxy контейнер) с помощью Docker Compose. В настоящий момент для доступа к контейнерам используется FQDNs, как того и требуют отдельные приложения. Контейнера работают только по внутренним портам Docker сети и только HAProxy контейнер работает с наружным портом (443). HAProxy маршрутизирует запросы на соответсвующие FQDNs (например app1.myhostserver.ru или app2.myhostserver.ru) к приложениям слушающим определенные порты в сети docker. Сам я это все не устанавливал... не знаю кто это вообще делал, но интересно спросить следующее:
1) Является ли нормой данная архитектура?
2) Можно ли обойтись без HAProxy контейнера и стоит ли это делать?
3) Как можно все это улучшить?
На мой взгляд, в этой архитектуре есть две потенциальных проблемы - scalability и high-availability. То есть она не поддерживает запуск контейнеров на нескольких серверах и запуск нескольких контейнеров с сервисом.
Если это не требуется, то ИМХО конфигурация вполне нормальная. Если требуется - то нужен Kubernetes или другой оркестратор.
Вадим, Traefik "понимает" контейнеры, но я не уверен что стоит менять.
Насчет советчиков - каждый день появляется что-то новое в DevOps. Советую следовать двум принципам:
- искать tool под свою проблему, а не наоборот
- использовать скучные технологии (boringtechnology.club/)