首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Traefik:在Azure上部署的群模式下的坏网关

Traefik:在Azure上部署的群模式下的坏网关
EN

Stack Overflow用户
提问于 2018-11-15 05:49:35
回答 1查看 448关注 0票数 1

我目前正在尝试使用Docker Swarm模式部署一组微服务。我设置了一个traefik容器,所有的容器都是这样的:

代码语言:javascript
运行
复制
version: "3.4" 
networks:
  backend-network:
    external: true
services:     

  proxy:
    image: traefik
    command: --api --docker --docker.swarmMode --docker.watch
    networks: 
      - backend-network 
    ports: 
      - "80:80"
      - "8090:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy: 
      replicas: 1
      restart_policy:
        condition: on-failure
      placement:
        constraints:
          - node.role == manager

  front-end:
    image: *****
    env_file:
      - ./env/.react.env
    networks: [ "backend-network" ]
    ports: 
      - "8080:80"
    deploy: 
      labels:
        - traefik.enable=false
      replicas: 1
      restart_policy: 
        condition: on-failure
      placement:
        constraints:
          - node.role == manager

  users-db:
    image: *****
    networks: ["backend-network"]
    ports: [ "5984:5984" ]
    deploy:
      labels:
        - traefik.enable=false
      replicas: 1
      restart_policy: # restart if something went wrong
        condition: on-failure

  # server that listens HTTP requests
  users:
    image: *****
    env_file: 
      - ./env/.users.env
    # wait until service db is up
    depends_on: [ "users-db" ]
    networks: 
      - backend-network
      # - proxy
    # expose port 80 of host node
    expose:
      - "80"
    deploy:   
      labels:
        - traefik.port=80
        - traefik.docker.network=backend-network
        - traefik.frontend.rule=PathPrefixStrip:/api/auth/
        - traefik.backend.loadbalancer.swarm=true
        - traefik.backend.loadbalancer.stickiness=true
      replicas: 1


  shop:
    image: *******
    env_file: 
      - ./env/.shop.env
    depends_on: [ "users"]
    networks:
      - backend-network
      # - proxy
    expose:
      - "80"
    deploy:
      labels:
        - traefik.port=80
        - traefik.frontend.rule=PathPrefixStrip:/api/shop
        - traefik.docker.network=backend-network
        - traefik.backend.loadbalancer.swarm=true
        - traefik.backend.loadbalancer.stickiness=true
      replicas: 1


  checkout:
    image: *****
    env_file: 
      - ./env/.checkout.env
    depends_on: [ "users", "shop" ]
    networks:
      - backend-network
    expose:
      - "80"
    deploy:
      labels:
        - traefik.port=80
        - traefik.frontend.rule=PathPrefixStrip:/api/checkout
        - traefik.docker.network=backend-network
        - traefik.backend.loadbalancer.swarm=true
        - traefik.backend.loadbalancer.stickiness=true
      replicas: 1


  visualizer:
    image: dockersamples/visualizer:stable
    ports: [ "9000:8080" ]
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      labels: 
        - traefik.enable=false
      placement:
        constraints:
          - node.role == manager

我用*隐藏了镜像名称。

我在Azure上创建了两个虚拟机,我创建了群,Traefik发现了我的服务,但当我尝试使用azure-dns/api/shop发出请求时,它总是返回错误的网关。

在本地使用docker-compose up时,它工作得很好。我还没有在本地使用docker-machine尝试Docker Swarm。我很快就会的。

EN

回答 1

Stack Overflow用户

发布于 2018-11-15 06:41:25

验证backend-network是否为重叠网络。

然后先试一下,不带

代码语言:javascript
运行
复制
   - traefik.backend.loadbalancer.swarm=true
   - traefik.backend.loadbalancer.stickiness=true # especially this one

根据问题3770,粘滞会话似乎在v1.7中有错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53309230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档