Docker Swarm模式路由网格无法与Wireguard VPN一起使用

时间:2018-09-19 15:08:23

标签: docker vpn docker-swarm docker-swarm-mode

我正在尝试使用Wireguard VPN(在接口wg0上进行设置)在Hetzner云上设置3节点Docker群群集,以在节点之间构建本地网络。使用VPN IP的节点之间的网络工作正常(端口7946/tcp7946/udp4789/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

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题并进行了以下更改:

  1. 我将我的 wireguard 地址从 10.0.* 移到了 192.168.*(我感觉 swarm 正在这些地址之上分配)。
  2. docker swarm init --advertise-addr 192.168.2.123 带有主节点的wireguard ip4 地址。

设法修复了它,并且在重新启动主节点和工作节点后它仍然有效!