Назад | Перейти на главную страницу

Docker Swarm Mesh не работает в смешанном кластере Win7 / Linux

У меня смешанный кластер Docker Swarm с машинами Linux и машинами Win7. VirtualBox через NAT (мостовой вариант не допускается).

    Win7        Win7
     |           |
(port forwarding on 7946tcp/udp, 2377tcp, 4789udp)
     |           |
+----+----+  +----+----+  +-------+    +-------+
| VirtBox |  | VirtBox |  | linux |    | linux |
+----+----+  +----+----+  +---+---+    +---+---+
     |            |           |            |
+----+---+   +----+---+  +----+---+   +----+---+
| docker |   | docker |  | docker |   | docker |
+----+---+   +----+---+  +----+---+   +----+---+
     |            |           |            |
+----+------------+-----------+------------+---+
|                docker swarm                  |
+----------------------------------------------+

Docker swarm инициализирован нормально (согласно диаграмме ниже):

docker@frankie:~$ docker node ls
ID            HOSTNAME    STATUS    AVAILABILITY   MANAGER STATUS  ENGINE VERSION
ban0an8sg *   Win1        Ready     Active         Reachable       18.05.0-ce
asdlkj328     Win2        Ready     Active         Leader          18.05.0-ce
9w05zyye6     Linux1      Ready     Active         Reachable       18.03.1-ce
slkhj2387     Linux2      Ready     Active         Reachable       18.03.1-ce

Могу без проблем запускать сервисы в рой:

docker@frankie:~$ docker service ls
ID          NAME     MODE         REPLICAS   IMAGE          PORTS
9w05zyye6   my-web   replicated   1/1        nginx:latest   *:8083->80/tcp

К сожалению сеть Swarm работает только между машинами Linux. Я могу получить доступ к службе непосредственно на компьютере, на котором она запущена (даже если служба работает в Windows), но сетевая сетка работает только между Linux.

accessible on ► | win1 | win2 | lin1 | lin2
   running on ▼ +------+------+------+------
           win1 |   x  |      |      |
           win2 |      |   x  |      |
         linux1 |      |      |   x  |  x
         linux2 |      |      |   x  |  x

Есть идеи, где может быть проблема?

редактировать (добавлена ​​команда добавления портов для пояснения):

VBoxManage.exe controlvm "win1" natpf1 "docker-swarm-cluster-management,tcp,0.0.0.0,2377,,2377"
VBoxManage.exe controlvm "win1" natpf1 "docker-swarm-cluster-comm-tcp,tcp,0.0.0.0,7946,,7946"
VBoxManage.exe controlvm "win1" natpf1 "docker-swarm-cluster-comm-udp,udp,0.0.0.0,7946,,7946"
VBoxManage.exe controlvm "win1" natpf1 "docker-swarm-cluster-traffic,udp,0.0.0.0,4789,,4789"