Docker-Swarm:从另一个子网join一个docker-swarm

我有4个虚拟机在同一个子网中,这是一个docker群的一部分。 现在我想连接另一个节点(虚拟机),它位于不同的国家(不同的子网)。 我是一个IP noob,我很难在docker中build立一个覆盖networking,它能够处理这个连接。

通过build立这种docker群,我需要牢记哪些方面?

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

  • 2377 / tcp:Swarm模式的api
  • 7946 /双方:叠加联网控制
  • 4789 / udp:覆盖networking数据
  • 协议50用于覆盖networking的ipsec(安全选项)

下面的iptables命令可以用于这个(你可能想限制源主机只有你的其他docker swarm节点):

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 

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