我有一个经典的分段网络(一个 DMZ 网络和一个内部 LAN 网络,中间有一个路由器/防火墙)和一个由 3 个节点组成的 Docker Swarm 集群,所有节点都是管理器 (Dm)。
我们当前放置 docker 管理器节点的方式是这样的(查看 DMZ 中的“Dm”):
| / \
Internet: \|/ |
----------------------------------------------------
DMZ : Dm Dm Dm
----------------------------------------------------
LAN : (some non containerized backend services)
我想了解投资扩展这个单一集群的真正好处,在 DMZ 中添加一些额外的节点作为工作节点 (Dw),并将管理器 (Dm) 移动到 LAN 内,如下所示:
| / \
Internet: \|/ |
----------------------------------------------------
DMZ : Dw Dw
----------------------------------------------------
LAN : Dm Dm Dm + (some non containerized backend services)
我做出这一改变的理由是:
- 如上所述,避免在 DMZ 中放置 docker 管理器节点,而是将管理器移至内部 LAN,并在 DMZ 中放置 2 个工作器。
- 将反向或正向代理容器放置在工作节点中,这样它们就可以像往常一样在 DMZ 中监听请求;将应用服务器或 NoSQL 缓存放置在管理器中,这样它们就可以像往常一样位于内部 LAN 中。
- 即使您要添加两个额外节点(DMZ 中的工作节点),出于 HA 原因,也不要使用少于 3 个管理器节点。如果有的话,请采取相反的做法:在内部 LAN 中添加更多工作节点,这样您的管理器就不会运行任何容器。
我的观点合理吗?如果合理,您是否同意之前的经验(所以这就是您部署 Docker Swarm 的方式)?是否存在任何潜在问题?