Трансляция MDNS из Kubernetes?

Я использую jmdns для трансляции службы через mdns, которая затем запускается как образ докера внутри модуля kubernetes. Pod yaml выглядит примерно так:

apiVersion: v1
kind: Pod
metadata:
  name: mdns-broadcaster
spec:
  hostNetwork: true
  containers:
    - name: mdns-broadcasting-pod
      image: ...

Приложение запустится и будет транслировать некоторый сервис типа _example._tcp. Однако, запуская avahi-browse с единственного узла, на котором размещен этот модуль, я не вижу, чтобы такая служба транслировалась.

Любая помощь будет оценена, спасибо


person Ben C    schedule 02.11.2018    source источник


Ответы (1)


Если кому-то интересно, я решил эту проблему, перейдя с mDNS для реализации kubernetes на avahi. Это позволяет вам затем совместно использовать каталог dbus в файловой системе хоста с модулем для выполнения объявлений mDNS.

person Ben C    schedule 05.11.2018
comment
Спасибо, что поделились этим! Итак, все, что вам нужно было сделать, чтобы сообщения avahi отображались в сети, — это смонтировать /var/run/dbus и/или /run/dbus в контейнер? - person phhe; 24.11.2018
comment
Да, просто смонтировал /var/run/dbus и использовал avahi для внутреннего использования, все сообщения появлялись в сети хост-компьютера. - person Ben C; 25.11.2018
comment
Спасибо вам за то, что вы уже написали. Это было бы очень полезно для меня; но я недостаточно знаю об авахи, чтобы полностью интерпретировать ваш ответ. Похоже, вы: 1. Использовали образ докера, в котором был (или вы установили) avahi. 2. Использовал том hostpath для монтирования /var/run/dbus с узла в контейнер. 3. ??? Как тогда сопоставить службы k8s с avahi? - person jwhitlark; 28.02.2019
comment
И на хосте, и на образе докера установлен avahi. Смонтированный файл dbus позволяет исполняемым файлам avahi в образе докера действовать так, как если бы они были исполняемыми файлами на хост-компьютере. - person Ben C; 12.06.2019