что такое бэкэнд и фронтенд в traefik.toml - PullRequest
0 голосов
/ 16 декабря 2018

Читая Документы Traefik, я смутился, когда столкнулся со скелетом конфигурации, упомянутым в документации :

traefik.toml:

defaultEntryPoints = ["http", "https"]

[entryPoints]
  [entryPoints.http]
    # ...
  [entryPoints.https]
    # ...

[file]

# rules
[backends]
  [backends.backend1]
    # ...
  [backends.backend2]
    # ...

[frontends]
  [frontends.frontend1]
  # ...
  [frontends.frontend2]
  # ...
  [frontends.frontend3]
  # ...

# HTTPS certificate
[[tls]]
  # ...

[[tls]]
  # ...

В чем причина разделения раздела правил в файле конфигурации на два разных подраздела как backend и frontend?

1 Ответ

0 голосов
/ 17 декабря 2018

Без разделения его на бэкэнд и внешний интерфейс я бы не смог подключить несколько сервисов к одному и тому же бэкэнду и, следовательно, иметь балансировку нагрузки, даже если я настроил несколько сервисов.

version: '3.2'

services:
  minio1:
    image: minio/minio:RELEASE.2018-11-30T03-56-59Z
    hostname: minio1
    volumes:
      - minio1-data:/export
    ports:
      - target: 9000
        mode: host
    networks:
      - minio_distributed
      - webgateway
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
      labels:
        - traefik.enable=true
        - traefik.docker.network=webgateway
        - traefik.backend=minio
        - traefik.frontend.rule=Host:minio.mycooldomain.com
        - traefik.port=9000
      placement:
        constraints:
          - node.labels.minio1==true
    command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export
    secrets:
      - secret_key
      - access_key

  minio2:
    image: minio/minio:RELEASE.2018-11-30T03-56-59Z
    hostname: minio2
    volumes:
      - minio2-data:/export
    ports:
      - target: 9000
        mode: host
    networks:
      - minio_distributed
      - webgateway
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
      labels:
        - traefik.enable=true
        - traefik.docker.network=webgateway
        - traefik.backend=minio
        - traefik.frontend.rule=Host:minio.mycooldomain.com
        - traefik.port=9000
      placement:
        constraints:
          - node.labels.minio2==true
    command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export
    secrets:
      - secret_key
      - access_key

volumes:
  minio1-data:
  minio2-data:
  minio3-data:
  minio4-data:

networks:
  minio_distributed:
    driver: overlay
  webgateway:
    external: true

secrets:
  secret_key:
    external: true
  access_key:
    external: true

пример от меня, где службы "minio1" и "minio2" доступны через один домен.Обычно, как только у меня появляются разные сервисы, каждый из них автоматически получает свой собственный бэкэнд, и мне пришлось бы предоставлять каждому сервису свой собственный домен и только одну услугу, где я увеличивал число, эти дополнительные контейнеры были бы доступны в том же домене.

Надеюсь, я смог объяснить это немного на собственном опыте.:) Обратите внимание, что у меня даже есть 4 сервиса Minio, я просто сократил его, чтобы сократить конфигурацию

...