Docker Swarm 模式路由网格不适用于wireguard ***
Posted
技术标签:
【中文标题】Docker Swarm 模式路由网格不适用于wireguard ***【英文标题】:Docker Swarm mode routing mesh not working with wireguard *** 【发布时间】:2019-02-23 19:32:49 【问题描述】:我正在尝试在 Hetzner 云上设置一个 3 节点 Docker swarm 集群,使用wireguard ***(在接口wg0
上设置)在节点之间构建本地网络。使用 *** IP(7946/tcp
、7946/udp
和 4789/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
如果我尝试在这个 swarm 上运行服务,它似乎运行正常,每个容器都可以在不同的节点上到达另一个容器并检查它们,它们加入了入口网络和我创建的覆盖网络,正如预期的那样。当我尝试从服务公开端口外部访问时,就会出现问题;它仅在我以运行容器的节点为目标时才有效,因此路由网格似乎无法正常工作。我在 docker logs 或 syslog 中没有发现任何错误。
注意:我使用的是 docker 18.06.1-ce
【问题讨论】:
如果您已经解决了这个问题,请告诉我们。 这方面有什么进展吗? 【参考方案1】:我遇到了这个问题并进行了以下更改:
-
我将我的wireguard地址从
10.0.*
移动到192.168.*
(我感觉swarm正在分配这些地址)。
docker swarm init --advertise-addr 192.168.2.123
与主节点的wireguard ip4 地址。
解决了这个问题,重启主节点和工作节点后它仍然有效!
【讨论】:
以上是关于Docker Swarm 模式路由网格不适用于wireguard ***的主要内容,如果未能解决你的问题,请参考以下文章