Traefik未在集群模式下设置后端/前端

时间:2019-02-12 13:47:15

标签: traefik

我想按照本指南https://docs.traefik.io/user-guide/swarm-mode/#deploy-traefik在群集群中使用traefik,我已经编写了这个堆栈文件:

  traefik:
    image: traefik:alpine
    deploy:
      placement:
        constraints:
          - node.role == manager
    command: --api --docker --docker.watch --docker.swarmMode
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "80:80"
      - "8080:8080"
    labels:
      - "traefik.enable=false"

  backend:
    image: registry.example.com/backend
    labels:
      - "traefik.backend=backend"
      - "traefik.backend.buffering.maxRequestBodyBytes=2147483648"
      - "traefik.backend.loadbalancer.sticky=true"
      - "traefik.frontend.rule=Host:backend.localhost"
      - "traefik.frontend.passHostHeader=true"
      - "traefik.port=80" 

   api:
    image: registry.example.com/api
    labels:
      - "traefik.backend=api"
      - "traefik.backend.buffering.maxRequestBodyBytes=2147483648"
      - "traefik.backend.loadbalancer.sticky=true"
      - "traefik.frontend.rule=Host:api.localhost"
      - "traefik.frontend.passHostHeader=true"
      - "traefik.port=80"

Traefik启动,但未进行任何配置,我不知道错误在哪里。

enter image description here

1 个答案:

答案 0 :(得分:1)

您从示例中忘记了网络部分。 您会同时错过与网络相关的标签及其相关的网络:

  deploy:
    labels:
    - "traefik.docker.network=traefik-network" # for both api and backend
    ...
  networks:
  - "traefik-network" # for traefik, api and backend
  ...
networks:
  traefik-network:{} # you can also make it external

编辑: 另外,在蜂群上,标签应设置在服务的“部署”部分下,而不是服务本身。