Назад | Перейти на главную страницу

Всегда ли входящий трафик к глобальной службе будет обрабатываться локально на этом узле?

Предполагая, что вы запускаете службу, доступную на порту 80 в global В этом режиме будет ли входящий трафик на порт 80 для любого данного узла / хоста обрабатываться локально экземпляром, работающим на этом узле?

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

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

version: '3.2'

services:
  traefik:
    image: [image]
    ports:
      - target: 80
        published: 80
        protocol: tcp
        mode: host
    deploy:
      mode: global
      endpoint_mode: dnsrr

Важные части:

  1. Версия должна быть установлена ​​на 3.2 для ports поддерживаемый формат раздела.
  2. Для каждого открытого порта установите mode к host
  3. в deploy раздел, набор mode к global и endpoint_mode к dnsrr.

Это откроет службу непосредственно на порту 80 на каждом узле кластера, и трафик будет обрабатываться непосредственно этой службой.