Подтвердить что ты не робот

Docker Swarm Рабочий Windows с Traefik возвращает Gateway Timeout

Цель состоит в том, чтобы создать смешанный роуд Docker для ОС, работающий на Linux-серверах и машинах Windows 10, работающих под управлением Docker для Windows

В настоящее время работники Windows теоретически поддерживаются на смешанных ролях os, если флаг -endpoint-mode установлен на "dnsrr". Это объясняется здесь. Однако попытки использовать traefik для перехода к простому снимку изображения stefanscherer/whoami не удалось.

Минимальный неудачный пример

// 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 успешно устанавливает бэкэнд-правила, чтобы проверить маршрутизацию, я использовал панель инструментов traefik, чтобы узнать URL-адрес, который перенаправляется по правилу, например. '10.0.0.12: 8080. Затем я сравниваю это с IP-адресом каждой задачи, задачу можно просмотреть с помощью docker service ps, а их адрес найден с помощью

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

Проблема

HTTP-запрос с заголовком "Host: whoami.docker", отправленный на IP-адрес менеджера, будет успешным при перенаправлении к диспетчеру и завершится неудачей с 504 Тайм-аут шлюза при перенаправлении в Windows Task на рабочем столе Windows.

4b9b3361