docker docker-swarm traefik

Docker Swarm Windows Worker con Traefik devuelve Gateway Timeout



docker-swarm (0)

El objetivo es obtener un enjambre OS Docker mezclado ejecutando con servidores Linux y Windows 10 Machines ejecutando Docker para Windows

Actualmente, los trabajadores de Windows son soportados teóricamente en enjambres de os mezclados siempre que el indicador --endpoint-mode esté establecido en ''dnsrr''. Esto se explica aquí . Sin embargo, los intentos de utilizar traefik para enrutar a un simple docker whoami imagen stefanscherer / whoami imagen han fallado.

Ejemplo de falla mínima

// On (Linux) Manager Node: docker swarm init --advertise-addr <hostaddress> --listen-addr <hostaddress>:2377 // On (Windows 10) Worker Node: docker swarm join <jointoken> // On Manager Node: docker network create --driver=overlay traefik-net docker service create / --name traefik / --constraint=node.role==manager / --publish 80:80 --publish 8080:8080 / --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock / --network traefik-net / traefik / --docker / --docker.swarmmode / --docker.domain=traefik / --docker.watch / --web docker service create / --name whoami / --label traefik.enable=true / --label traefik.frontend.rule=Host:whoami.docker / --label traefik.protocol=http / --label traefik.docker.network=traefik-net / --label traefik.backend.loadbalancer.method=drr / --label traefik.backend=whoami / --network traefik-net / --mode global/ --label traefik.port=80 / stefanscherer/whoami

Traefik establece con éxito las reglas de backend, para verificar el enrutamiento utilicé el tablero de trae trae para descubrir la URL que está enrutada por la regla, por ejemplo ''10 .0.0.12: 8080 ''. Luego comparo esto con la dirección IP de cada tarea, la tarea se puede ver con el docker service ps , y su dirección se encuentra usando

docker inspect <taskID> / --format ''{{ range .NetworksAttachments }}{{ .Addresses }}{{ end }}''

El problema

Una solicitud HTTP con un encabezado ''Host: whoami.docker'' enviado a la IP del administrador tendrá éxito cuando se enrute al administrador y falle con 504 Gateway Timeout cuando se enrute a la tarea de Windows en el trabajador de Windows.