L'objectif est d'obtenir un mixte OS Docker essaim cours d'exécution à l'aide de serveurs Linux et Windows 10 Machines de course de Docker Pour Windows
Actuellement Windows travailleurs sont théoriquement pris en charge sur les os des essaims fourni l'-paramètre-mode drapeau est réglé à "dnsrr'. C'est expliqué ici. Cependant, les tentatives d'utilisation de traefik de route pour un simple débardeur whoami image stefanscherer/whoami image ont échoué.
Minimes Exemple D'Échec De
// 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 installe bien backend règles, afin de vérifier le routage, j'ai utilisé le traefik tableau de bord pour trouver l'URL qui est acheminé par la règle par exemple '10.0.0.12:8080'. J'ai ensuite la comparer avec l'adresse IP de chaque tâche, la tâche peut être considérée avec docker service ps
, et leur adresse' trouvé à l'aide de
docker inspect <taskID> \
--format '{{ range .NetworksAttachments }}{{ .Addresses }}{{ end }}'
Le Problème
Une requête HTTP avec un en-tête 'de l'Hôte:whoami.docker' envoyé à l'adresse IP du gestionnaire de réussir quand acheminé vers le gestionnaire et ne parviennent pas à 504 Gateway Timeout lors de l'acheminés vers des Tâches de Windows sur Windows travailleur.