Предполагая, что вы запускаете службу, доступную на порту 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
Важные части:
3.2
для ports
поддерживаемый формат раздела.mode
к host
deploy
раздел, набор mode
к global
и endpoint_mode
к dnsrr
.Это откроет службу непосредственно на порту 80 на каждом узле кластера, и трафик будет обрабатываться непосредственно этой службой.