首页 > 解决方案 > 无法让 traefik 在 docker swarm 上充当反向代理

问题描述

我设置了一个运行 Raspbian Stretch Lite 和 Docker 18.06.1-ce 的 3x Raspberry Pi 3 集群。到目前为止,Swarm 已初始化并且工作正常。我阅读了有关在 docker swarm ( 1 , 2 )上设置 traefik 的文档,但我无法从 traefik 获取 whoami 容器。

这是我的stack.yml:

version: '3'

networks:
  proxy:
    external: true

services:
  traefik:
    image: traefik
    command: --api --docker --docker.swarmMode --docker.watch
    deploy:
      placement:
        constraints:
          - node.role == manager
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - proxy
    ports:
      - "80:80"
      - "443:443"
      - "8002:8080"

  whoami:
    image: stefanscherer/whoami
    networks:
      - proxy
    deploy:
      labels:
        - "traefik.port=80"
        - "traefik.docker.network=proxy"
        - "traefik.frontend.rule=Path:/whoami"

堆栈正在运行:

$ docker service ls
ID              NAME                        MODE            REPLICAS    IMAGE                        PORTS
tx0npbsb3t0k    traefik_traefik             replicated      1/1         traefik:latest              *:80->80/tcp, *:443->443/tcp, *:8002->8080/tcp
7fqaew880p9p    traefik_whoami      replicated      1/1         stefanscherer/whoami:latest

代理网络使用覆盖驱动程序和可附加标志设置。

Traefik 仪表板可访问并显示 whoami 前端和后端。但是在我得到的浏览器中打开http://pinode1/whoami/Error 502 Bad Gateway(带或不带斜杠)。

我已经在另一台非集群机器上成功运行和服务 whoami,所以我想知道集群设置有什么问题。

标签: dockerreverse-proxydocker-swarmtraefik

解决方案


推荐阅读