Traefik не работает с контейнером, развернутым на рабочем узле (рой) - PullRequest
0 голосов
/ 21 мая 2019

Я запускаю докер в режиме роя.

Сервер А - мой менеджер Сервер B - мой рабочий

У меня много контейнеров, работающих на A, и просто запускаю B, чтобы справиться с некоторой рабочей нагрузкой.

Проблема в том, что если контейнер развернут на A, Traefik направит запросы к нему, но если контейнер окажется на B, это даст мне плохой шлюз.

Мой traefik стек:

version: '3.6'

networks:
  traefik-net:
    driver: overlay
    attachable: true
    external: true
services:
  reverse-proxy:
    image: traefik # The official Traefik docker image
    command: --docker --docker.swarmmode --docker.domain=mydomain.com --docker.watch --api  # Enables the web UI and tells Traefik to listen to docker
    ports:
      - "80:80"     # The HTTP port
      - "8080:8080" # The Web UI (enabled by --api)
      - "443:443"
    networks:
      - traefik-net
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen 
      - /home/walucas/docker-configs/traefik/traefik.toml:/traefik.toml
      - /home/walucas/docker-configs/traefik/acme.json:/acme.json
    deploy:
      labels:
        traefik.port: 8080
        traefik.frontend.rule: "Host:traefik.mydomain.com"
        traefik.docker.network: traefik-net
      replicas: 1
      placement:
        constraints: [node.role == manager]

Мой whoami стек:

version: '3.6'

services:
  whoami:
    image: jwilder/whoami
    ports:
      - "8089:8000"
    networks:
      - traefik-net
    deploy:
      replicas: 1
      labels:
        traefik.frontend.rule: "Host:whoami.mydomain.com"
        traefik.port: "8000"
        traefik.docker.network: traefik-net
networks:
  traefik-net:
    driver: overlay
    attachable: true
    external: true

Я не уверен, что это проблема сети или проблема traefik.

(примечание) Сервер B находится в другом физическом местоположении, чем сервер A.

...