Traefik + Consul не генерирует SSL-сертификаты в режиме репликации, используя TRAEFIK DEFAULT CERT - PullRequest
1 голос
/ 28 марта 2020

У меня есть 1 мастер-узел и 2 рабочих узла, на которых работает docker swarm. Я развернул Traefik + Consul, используя приведенную ниже настройку:

version: '3.3'
services:
  consul-leader:
    image: consul:latest
    command:
     - agent
     - -server
     - -client=0.0.0.0
     - -bootstrap
     - -ui
    environment:
      CONSUL_BIND_INTERFACE: eth0
      CONSUL_LOCAL_CONFIG: '{"leave_on_terminate": true}'
    volumes:
     - consul-data-leader:/consul/data
    networks:
     - default
     - traefik-public
    logging:
      driver: json-file
    deploy:
      labels:
        traefik.tags: traefik-public
        traefik.redirectorservice.frontend.redirect.entryPoint: https
        traefik.webservice.frontend.entryPoints: https
        traefik.redirectorservice.frontend.entryPoints: http
        traefik.docker.network: traefik-public
        traefik.enable: 'true'
        traefik.frontend.auth.basic.users: admin:$apr1$lKAo73kT$xlahD.KLANH8ZbMaDXDsC.
        traefik.port: '8500'
        traefik.frontend.rule: Host:consul.live.mydomain.app
  consul-replica:
    image: consul:latest
    command:
     - agent
     - -server
     - -client=0.0.0.0
     - -retry-join=consul-leader
    environment:
      CONSUL_BIND_INTERFACE: eth0
      CONSUL_LOCAL_CONFIG: '{"leave_on_terminate": true}'
    volumes:
     - consul-data-replica:/consul/data
    networks:
     - default
     - traefik-public
    logging:
      driver: json-file
    deploy:
      replicas: 3
  traefik:
    image: traefik:v1.7
    command:
     - --docker
     - --docker.swarmmode
     - --docker.watch
     - --docker.exposedbydefault=false
     - --constraints=tag==traefik-public
     - --entrypoints=Name:http Address::80
     - --entrypoints=Name:https Address::443 TLS
     - --consul
     - --consul.endpoint=consul-leader:8500
     - --acme
     - --acme.email=me.me@me.com
     - --acme.storage=traefik/acme/account
     - --acme.entryPoint=https
     - --acme.httpChallenge.entryPoint=http
     - --acme.onhostrule=true
     - --acme.acmelogging=true
     - --logLevel=INFO
     - --accessLog
     - --api
    ports:
     - 80:80
     - 443:443
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock
    networks:
     - default
     - traefik-public
    logging:
      driver: json-file
    deploy:
      replicas: 3
      labels:
        traefik.tags: traefik-public
        traefik.redirectorservice.frontend.redirect.entryPoint: https
        traefik.webservice.frontend.entryPoints: https
        traefik.redirectorservice.frontend.entryPoints: http
        traefik.docker.network: traefik-public
        traefik.enable: 'true'
        traefik.frontend.auth.basic.users: admin:$apr1$lKAo73kT$xlahD.KLANH8ZbMaDXDsC.
        traefik.port: '8080'
        traefik.frontend.rule: Host:traefik.live.mydomain.app
      placement:
        constraints:
         - node.role == manager
networks:
  default:
    driver: overlay
  traefik-public:
    external: true
volumes:
  consul-data-replica:
    driver: local

Когда я развертываю службу или стек в режиме GLOBAL, кажется, что все работает нормально. Однако, когда я пытаюсь развернуть стек, используя реплицированный режим, сертификат SSL не генерируется, и вместо него Traefik использует TRAEFIK DEFAULT CERT . Может кто-нибудь сказать мне, что я делаю не так?

...