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

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

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

0
задан 5 May 2020 в 14:17
1 ответ

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

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 на каждом узле в кластере, и трафик будет обрабатываться непосредственно этим сервисом.

0
ответ дан 5 May 2020 в 11:48

Теги

Похожие вопросы