2

全部。我正在学习 Docker。但是仍然找不到任何关于 Docker 入口网络如何连接多个独立主机的文档。

我在不同的数据中心有 2 个虚拟机,并希望在它们上创建 swarm 集群。默认安装的入口网络是否有可能使 vm1 上的容器对某个覆盖网络内的 vm2 上的容器可见?或者 vm1 和 vm2 都应该在同一个本地网络中?

4

2 回答 2

4

一般来说,不建议在 Swarm 中跨越数据中心。您可以跨越可用区(同一地理区域中延迟约 10 毫秒或更短的数据中心),但区域之间应该是它们自己的 Swarm。这是 100% 的虚拟网络间流量(覆盖驱动程序)和 Swarm 管理器之间的 Raft 共识流量的延迟问题。延迟没有硬性限制,但您可能不希望单个 Swarm 中的复杂性试图阻止应用程序中的流量在数据中心之间来回跳跃……除非数据中心的延迟非常低。

有关这方面的更多数据,请查看Docker Success 站点(搜索 swarm 覆盖和过滤器以参考),因为 Swarm 的 Docker EE 要求通常与 Docker CE 相同。

Swarm 中节点之间的另一个要求是它们在彼此的公共 IP 之间打开端口。理想情况下,节点之间没有 NAT。

于 2018-08-11T02:20:42.767 回答
0

如果两个主机都是同一个 docker swarm 集群的一部分,那么从 docker 的角度来看,它们位于不同的数据中心并不重要。服务之间的路由将正常工作。例如,host1 上的 service1 将能够访问另一个数据中心中的 service2。但是,您可能需要考虑由于主机的物理距离而可能发生的任何可能的大延迟。

入口网络也是如此。它不在乎有 2 个数据中心。任何 swarm 集群节点都将参与其中,并将传入的请求路由到正确的服务/主机。

于 2018-08-10T07:40:48.820 回答