У меня есть классическая сегментированная сеть (сеть DMZ и внутренняя сеть LAN с маршрутизатором / межсетевым экраном между ними) и кластерное соединение Docker Swarm на 3 узла, все менеджеры (Dm).
В настоящее время мы размещаем узлы менеджера докеров следующим образом (посмотрите на «Dm's» в DMZ):
| / \
Internet: \|/ |
----------------------------------------------------
DMZ : Dm Dm Dm
----------------------------------------------------
LAN : (some non containerized backend services)
Я хотел узнать о реальной выгоде инвестирования в расширение этого единого кластера за счет дополнительных узлов в качестве рабочих (Dw) в DMZ и перемещения менеджеров (Dm) внутри локальной сети, например:
| / \
Internet: \|/ |
----------------------------------------------------
DMZ : Dw Dw
----------------------------------------------------
LAN : Dm Dm Dm + (some non containerized backend services)
Мое обоснование для изменения:
- Как уже упоминалось, избегайте наличия узлов менеджера докеров в DMZ, вместо этого переместите ваших менеджеров во внутреннюю локальную сеть и поместите 2 рабочих в DMZ.
- Разместите контейнеры обратного или прямого прокси в рабочих узлах, чтобы они, как обычно, слушали запрос в DMZ; Поместите серверы приложений или NoSQL-кэширование в менеджеры, чтобы они были во внутренней локальной сети, как обычно.
- Даже если вы добавляете два дополнительных узла (рабочих в демилитаризованной зоне), по причинам высокой доступности не используйте менее 3 управляющих узлов. Если они делают наоборот: добавьте больше рабочих узлов во внутреннюю локальную сеть, чтобы ваши менеджеры вообще не запускали какой-либо контейнер.
Имеют ли мои очки смысл? Если все в порядке, согласны ли вы с предыдущим опытом (так вы используете Docker Swarm)? Есть потенциальные проблемы?