Traefik как Loadbalancer для MQTT через TCP с TLS - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь использовать Traefik в качестве Loadbalancer для MQTT через tcp с TLS (1.2). Я нашел здесь несколько сообщений для topi c, как настроить traefik для mqtt, но ничего не связано или не решает мою особую проблему / случай.

Я настроил следующую конфигурацию для локального моделирования поведения Traefik как Обратный прокси-сервер и балансировщик нагрузки для MQTT на моем компьютере разработчика Windows 10

  • Mosquitto_168_8883 на Windows локально на порту 8883 с включенными / подписанными TLS сертификатами
  • Traefik 2.1.2 на Windows прослушивание порта 7883 для маршрутизации в mqqt (см. Ниже)
  • Node-Red 1.0.3 на клиенте Windows (NodeJs 12.14.1), подключающемся (a) непосредственно к Mosquitto (b) через Traefik в Mosquito

(a) Прямое подключение и публикация работает для клиента Node-Red (порт 8883)

(b) через Traefik: Node-Red не может подключиться или publi sh to MQTT (порт 7883)

Моя конфигурация Traefik TOML выглядит следующим образом:

[tracing]
  serviceName = "mqtt"
 [log]
  level = "DEBUG" # --log.level 

[entryPoints]
 [entryPoints.mqtt]
   address = ":7883"
 [entryPoints.traefik]
  address ="localhost:8091"

[api]
 dashboard = true
 insecure = true

[tcp] # YAY!
 [tcp.routers]
  [tcp.routers.mqtt]
   entrypoints = ["mqtt"]
   rule = "HostSNI(`*`)" # Catches every request   
   service = "mqtt"     

[tcp.routers.mqtt.tls]
     passthrough = true


 [tcp.services]
  [tcp.services.mqtt]
   [tcp.services.mqtt.loadBalancer]
    [[tcp.services.mqtt.loadBalancer.servers]]
      address = "localhost:8883"

В настоящее время я не вижу ничего интересного в активном выводе трассировки и регистрации. Пользовательский интерфейс Traefik показывает отсутствие попыток подключения через порт 7883 / TCP / Entrypoint mqtt

У кого-нибудь реализован и работает этот сценарий использования? Что я делаю не так / что мне не хватает? Заранее спасибо.

...