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/tcp7946/udp4789/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

如果我尝试在这个 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 ***的主要内容,如果未能解决你的问题,请参考以下文章

docker swarm网络模式

Docker Swarm

(转) Docker swarm - 使用体验 1+2

docker swarm英文文档学习-1-概述

portainer,用于管理docker swarm,好像也不错哟

django 多数据库路由不适用于多个模式