Docker-Swarm:加入来自另一个子网的 docker-swarm

Docker-Swarm: Join a docker-swarm from another subnet

我在同一个子网中有 4 个虚拟机,它们是 docker-swarm 的一部分。 现在我想连接另一个位于不同国家(不同子网)的节点(虚拟机)。 我是一个 IP 菜鸟,我很难在 docker 中设置一个能够处理此连接的覆盖网络。

设置这种 docker-swarm 需要注意哪些方面?

您需要在集群节点之间打开以下端口:

  • 2377/tcp:群模式api
  • 7946/两者:覆盖网络控制
  • 4789/udp:覆盖网络数据
  • 覆盖网络的 ipsec(安全选项)协议 50

以下 iptables 命令可用于此(您可能希望将源主机限制为仅其他 docker 群节点):

iptables -A INPUT -p tcp -m tcp --dport 2377 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 7946 -j ACCEPT
iptables -A INPUT -p tcp -m udp --dport 7946 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 4789 -j ACCEPT
iptables -A INPUT -p 50 -j ACCEPT

这需要在所有集群节点上配置(如果它们具有限制性主机防火墙)以及保护子网的网络防火墙。