I have a classic segmented network (a DMZ network and an internal LAN network with a router/firewall in between) and a Docker Swarm cluster compound by 3 nodes, all managers (Dm).
The way we have currently placed the docker manager nodes is this (look at the "Dm's" in the DMZ):
| / \
Internet: \|/ |
----------------------------------------------------
DMZ : Dm Dm Dm
----------------------------------------------------
LAN : (some non containerized backend services)
I wanted to know about the real benefit of investing in expanding this single cluster with some extra nodes as workers (Dw) in the DMZ and moving the managers (Dm) inside the LAN, like this:
| / \
Internet: \|/ |
----------------------------------------------------
DMZ : Dw Dw
----------------------------------------------------
LAN : Dm Dm Dm + (some non containerized backend services)
My reasoning for the change is:
- As mentioned, avoid having docker manager nodes in the DMZ, instead move your managers to the internal LAN and place 2 workers in the DMZ.
- Place reverse or forward proxies containers in the worker nodes, so they are listening for request in the DMZ as usual; place app servers or NoSQL caching in the managers so they are in the internal LAN, again as usual.
- Even if you are adding two extra nodes (workers in the DMZ), don't use less than 3 manager nodes, for HA reasons. If any do the opposite: add more worker nodes in the internal LAN so your managers don't run any container at all.
Do my points make sense? If OK, do you agree from a previous experience (so this is the way you deploy Docker Swarm)? Any potential problems?