Docker Swarm,多个主机不在同一个本地网络中,但可以通过 IP 访问

Docker Swarm, multiple hosts not in same local network but reachable over IP

我看到很多例子 运行 多个 Docker 节点处于 swarm 模式,但他们都提到节点共享一个 local/private 网络。我想知道,是否可以将两个不在专用网络上但仍然可以通过 IP 相互访问并设置正确端口的主机连接到一个 swarm 上?

这不适用于生产设置。

是否有任何 Swarm 机制可以阻止这种架构?

感谢您的宝贵时间!

您可以通过 public 互联网连接群节点。需要的是:

  1. 每个节点的可路由 IP 地址,这可能需要节点之间的 VPN
  2. 防火墙规则允许每个节点之间的 2376/tcp、7946/tcp+udp、4789/udp
  3. 低延迟,如果超过心跳超时,节点将被标记为关闭并迁移工作负载

由于最后一个要求,通常人们会在同一区域但多个可用区安装节点。当您到达多个区域时,通常会看到多个集群以降低集群内的延迟。