Развертывание стека Traefik / Сервис создает повторяющиеся задачи

#docker #docker-compose #docker-swarm #traefik

#docker #docker-compose #docker-swarm #traefik

Вопрос:

Я пытаюсь развернуть Traefik в своем роевом кластере. Я следую некоторым из этого руководства: https://doc.traefik.io/traefik/v1.7/user-guide/swarm-mode / несмотря на то, что я использую версию V2 traefik, я, похоже, не могу найти руководство по развертыванию в swarm (даже если оно мне нужно только на узле управления). При выполнении следующей команды docker:

 docker service create 
    --name traefik 
    --constraint=node.role==manager 
    --publish 80:80 --publish 8080:8080 
    --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock 
    --network traefik-net 
    traefik 
    --docker 
    --docker.swarmMode 
    --docker.watch 
    --api
 

Процесс создания заканчивается повторяющимся циклом.
Глядя на docker service ps эту службу, я получаю следующее:

 ID             NAME            IMAGE            NODE          DESIRED STATE   CURRENT STATE           ERROR                       PORTS
l5leeyfjqnvh   traefik.1       traefik:latest   ahomehost01   Ready           Ready 2 seconds ago                                
m0djg5q116kv    _ traefik.1   traefik:latest   ahomehost01   Shutdown        Failed 3 seconds ago    "task: non-zero exit (1)"  
mcfzp4n0g4a0    _ traefik.1   traefik:latest   ahomehost01   Shutdown        Failed 14 seconds ago   "task: non-zero exit (1)"  
rkl8ljv7qiwt    _ traefik.1   traefik:latest   ahomehost01   Shutdown        Failed 25 seconds ago   "task: non-zero exit (1)"  
ngfy3j3124ev    _ traefik.1   traefik:latest   ahomehost01   Shutdown        Failed 35 seconds ago   "task: non-zero exit (1)"
 

затем запуск docker service регистрирует эту службу, дает мне следующее:

 traefik.1.hry87mal3bcw@ahomehost01    | 2021/01/09 14:00:51 command traefik error: failed to decode configuration from flags: field not found, node: docker
 

В идеале я бы предпочел, чтобы это было как файл компоновки для удобства обслуживания, который я создал, но возникают те же проблемы:

 version: '3.3'
networks:
  swarm-network:
    driver: overlay
services:
  traefik:
    # The official v2 Traefik docker image
    image: traefik
    deploy:
      restart_policy:
        condition: on-failure
      placement:
        constraints:
          - node.role == manager
      update_config:
        parallelism: 1
        delay: 10s
    # Enables the web UI and tells Traefik to listen to docker
    command: 
      - "--api.insecure=true" 
      - "--docker"
      - "--docker.swarmMode"
      - "--docker.watch"
    ports:
      # The HTTP port
      - "80:80"
      # The Web UI (enabled by --api.insecure=true)
      - "8080:8080"
    networks:
      - swarm-network
    volumes:
      # So that Traefik can listen to the Docker events
      - /var/run/docker.sock:/var/run/docker.sock
    labels:
      - "traefik.port=8080"
      - "traefik.backend=traefik"
      - "traefik.frontend.rule=Host:traefik.docker.swarm"
      - "traefik.docker.network=swarm-network"
 

У кого-нибудь есть идея по версии V2, как я могу выполнить развертывание в стеке (только для менеджера) или если это вообще требуется, и я должен использовать другой подход?

Комментарии:

1. Есть ли причина, по которой вы создаете конфигурацию версии v1.7 и пытаетесь запустить ее с помощью версии v2.x? Параметры и синтаксис сильно изменились… Разве не имело бы смысла напрямую создавать конфигурацию версии v2.x вместо того, чтобы начинать с версии v1.x и переносить ее на версию v2.x (см.: doc.traefik.io/traefik/migration/v1-to-v2 )? Это ссылка на конфигурацию режима роя для последней версии traefik: doc.traefik.io/traefik/providers/docker/#docker-swarm-mode

2. Я не собирался создавать конфигурацию с версией v1.7, мне не удалось найти документы версии V2. Спасибо, что поделились ими со мной. Это очень помогло разобраться в проблеме! Также стоит отметить, что из отправленного вами документа я также нашел этот dockerswarm.rocks/traefik, который отвечал на дополнительные биты необходимой мне информации.