使用群集模式无法访问工作节点上的容器

时间:2019-07-25 00:41:03

标签: docker docker-swarm docker-swarm-mode

我有一个带有Manager和Worker节点的Swarm集群。 通过Traefik可以访问管理器上运行的所有容器,并且工作正常。 我刚刚部署了一个新的Worker节点,并在该节点上加入了我的团队。 现在,我开始扩展一些服务,并意识到它们正在工作节点上超时。

因此,我使用whoami容器设置了一个简单的示例,无法弄清楚为什么我无法访问它。这是我的配置(全部部署在MANAGER节点上):

version: '3.6'

networks:
  traefik-net:
    driver: overlay
    attachable: true
    external: true
services:
  whoami:
    image: jwilder/whoami    
    networks:
      - traefik-net 
    deploy:
      labels:
        - "traefik.port=8000"
        - "traefik.frontend.rule=Host:whoami.myhost.com"
        - "traefik.docker.network=traefik-net"
      replicas: 2
      placement:
        constraints: [node.role != manager]

我的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=myhost.com --docker.watch --api  
    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/ubuntu/docker-configs/traefik/traefik.toml:/traefik.toml
      - /home/ubuntu/docker-configs/traefik/acme.json:/acme.json
    deploy:
      labels:
        traefik.port: 8080
        traefik.frontend.rule: "Host:traefik.myhost.com"
        traefik.docker.network: traefik-net
      replicas: 1
      placement:
        constraints: [node.role == manager]

我的工人docker ps输出:

CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS              PORTS               NAMES
b825f95b0366        jwilder/whoami:latest   "/app/http"         4 hours ago         Up 4 hours          8000/tcp            whoami_whoami.2.tqbh4csbqxvsu6z5i7vizc312
50cc04b7f0f4        jwilder/whoami:latest   "/app/http"         4 hours ago         Up 4 hours          8000/tcp            whoami_whoami.1.rapnozs650mxtyu970isda3y4

我尝试打开防火墙端口,将其完全禁用,似乎没有任何作用。感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我必须使用--advertise-addr y.y.y.y使其起作用