Traefik 2.0 "порт отсутствует" для внутренней панели - PullRequest
0 голосов
/ 27 октября 2019

Я пытаюсь использовать traefik 2.0 (!) В режиме Docker Swarm. Это мой стек:

version: '3.7'
services:
  traefik:
    image: traefik:latest
    ports:
      - 80:80
      - 443:443
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.role == manager
        preferences:
          - spread: node.id
      labels:
        - traefik.enable=true
        - traefik.http.routers.traefikRouter.rule=Host(`127.0.0.11`)
        - traefik.http.routers.traefikRouter.service=api@internal
        - traefik.http.routers.traefikRouter.entrypoints=http
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: >
      --providers.docker
      --providers.docker.exposedbydefault=false
      --providers.docker.swarmmode=true
      --entryPoints.http.address=":80"
      --entryPoints.https.address=":443"
      --accesslog
      --log.level=DEBUG
      --api=true
      --api.dashboard=true
    networks:
      - traefik-public

  whoami:
    image: containous/whoami
    deploy:
      replicas: 2
      labels:
        - traefik.enable=true
        - traefik.http.services.whoami.loadbalancer.server.port=80
        - traefik.http.routers.whoami.rule=Host(`127.0.0.12`)
        - traefik.http.routers.whoami.service=whoami
        - traefik.http.routers.whoami.entrypoints=http
    networks:
      - traefik-public

# Run on Host: docker network create --driver=overlay traefik-public
networks:
  traefik-public:
    external: true

Доступ к http://127.0.0.12/ работает, я вижу страницу whoami. При доступе к http://127.0.0.11/ или http://127.0.0.11/dashboard/ должна отображаться внутренняя панель управления traefiks, если я прочитал документы справа. Но я получаю трафикикс 404.

docker service log показывает одну ошибку:

level=error msg="port is missing" container=traefik-traefik-z8kz9w91yw7pm6tp5os5vxrnv providerName=docker

В чем проблема? Я подозреваю, что для службы отсутствует порт api@internal ... Но это его внутренняя служба - я не могу это настроить?!

Есть идеи? Thx

1 Ответ

1 голос
/ 27 октября 2019

Хорошо, просто добавление фиктивного сервисного порта к меткам работает

      labels:
        - traefik.enable=true
        - traefik.http.services.justAdummyService.loadbalancer.server.port=1337
        - traefik.http.routers.traefikRouter.rule=Host(`127.0.0.11`)
        - traefik.http.routers.traefikRouter.service=api@internal
        - traefik.http.routers.traefikRouter.entrypoints=http

Я боролся с traefik уже более 24 часов ... Это не может быть решением, верно? Думаю, я должен сообщить об этом как об ошибке. Кто-то может подтвердить, что это не так, как должно работать?

...