我正在尝试使用Wireguard VPN(在接口wg0
上进行设置)在Hetzner云上设置3节点Docker群群集,以在节点之间构建本地网络。使用VPN IP的节点之间的网络工作正常(端口7946/tcp
,7946/udp
和4789/udp
已打开,如报告的here所示)。我使用以下命令启动docker swarm集群:
docker swarm init --advertise-addr wg0 --listen-addr wg0
docker swarm join --token SWMTKN-1-xxx --advertise-addr wg0 --listen-addr wg0 10.0.0.1:2377
如果我尝试在该群集上运行服务,则似乎运行正常,每个容器都可以到达不同节点上的另一个容器并对其进行检查,它们按预期加入了我创建的入口网络和覆盖网络。当我尝试从服务暴露端口外部访问时会出现问题;仅当我以容器运行所在的节点为目标时,它才起作用,因此似乎路由网格无法正常工作。我在Docker日志或syslog中没有发现任何错误。
注意:我正在使用docker 18.06.1-ce
答案 0 :(得分:1)
我遇到了这个问题并进行了以下更改:
10.0.*
移到了 192.168.*
(我感觉 swarm 正在这些地址之上分配)。docker swarm init --advertise-addr 192.168.2.123
带有主节点的wireguard ip4 地址。设法修复了它,并且在重新启动主节点和工作节点后它仍然有效!