Membuat instance Traefik sederhana dengan 2 layanan, hanya dengan http. Saya mendapatkan batas waktu Gateway di kedua kasus, ini adalah satu-satunya file saya tempat saya membuat layanan dan proxy traefik.

version: '3.4'

services:
  reverse-proxy:
    image: traefik:2.0 # The official Traefik docker image
    ports:
      - "80:80"     # The HTTP port
      - "10553:8080"    # The Web UI (enabled by --api)
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
    networks:
      - default
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.network=demo_swarm_network"
      - "--providers.docker.exposedbydefault=false"      
      - "--providers.docker.swarmMode=true"
      - "--entrypoints.web.address=:80"
    deploy:
      mode: global
      placement:
        constraints:
          - node.role == manager
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure  
  xxxxx-authentication-api:
    image: xxxx_authentication_api_nightly:9999
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.docker.lbswarm=true"
        - "traefik.docker.network=demo_swarm_network"
        - "traefik.http.routers.authenticationapi.rule=PathPrefix(`/api/authentication`)"
        - "traefik.http.routers.authenticationapi.entrypoints=web"        
        - "traefik.http.services.xxxxx-authentication-api.loadbalancer.server.port=3000"
        - "traefik.http.services.xxxxx-authentication-api.loadbalancer.server.scheme=http"
      replicas: 1
      update_config:
        parallelism: 1
        delay: 10s
        order: stop-first
    command: node ./server.js
    environment:
      - NODE_ENV=authentication 
      - LOG_LEVEL=info 
      - NODE_CONFIG_DIR=./config
    networks:
      - default
    ports:
      - "3000"
  xxxxx-authentication-app:
    image: xxxxx_authentication_app_nightly:9999
    deploy:
      labels:
        - "traefik.enable=true"       
        - "traefik.docker.lbswarm=true"
        - "traefik.docker.network=demo_swarm_network"
        - "traefik.http.routers.authenticationapp.rule=PathPrefix(`/authentication`)"    
        - "traefik.http.routers.authenticationapp.entrypoints=web"
        - "traefik.http.services.xxxxx-authentication-app.loadbalancer.server.port=80"
        - "traefik.http.services.xxxxx-authentication-app.loadbalancer.server.scheme=http"
      replicas: 1
      update_config:
        parallelism: 1
        delay: 10s
        order: stop-first
    networks:
      - default
    ports:
      - "80"
networks:
  default:
    external:
      name: demo_swarm_network

Layanan aktif dan berjalan, begitu juga wadahnya. Traefik juga berjalan, hanya ketika saya mencoba untuk localhost:80/api/authentication atau localhost:80/authentication saya mendapatkan batas waktu gateway.

Di mana traefik mengirim permintaan saya? Saya telah mengonfirmasi di port Host, bahwa aplikasi di kedua titik akhir sedang berjalan.

Apa yang hilang dalam konfigurasi saya?

2
Greggz 17 April 2020, 19:48

1 menjawab

Jawaban Terbaik

Sabas! Batas waktu menghilang saat saya memperbarui jaringan demo_swarm_network agar memiliki hamparan.

2
Greggz 20 April 2020, 09:15