Неинвазивная многоадресная рассылка UDP в Куберне - PullRequest
0 голосов
/ 23 января 2019

У меня есть (рабочая) тестовая программа, которая отправляет и получает сообщения через многоадресную передачу UDP. Я успешно развернул его в кластере kubernetes и продемонстрировал два модуля, взаимодействующих друг с другом. Единственный улов в этом заключается в том, что мне нужно добавить hostNetwork: true к спецификациям модуля. Насколько я понимаю, это отключает всю виртуализацию сети, которая в противном случае была бы доступна. Я также попробовал

        - containerPort: 12345
          hostPort: 12345
          protocol: UDP

но когда я использую это без hostNetwork, связь не получается.

Есть ли способ заставить это работать, но при этом использовать обычную сеть для всего остального? (Мы вряд ли захотим переключить сетевой уровень на что-то вроде Weave.)

1 Ответ

0 голосов
/ 24 января 2019

Использование hostNetwork: true хорошо, когда вы ожидаете получить прямой доступ от вложенного модуля к сетевому интерфейсу узла, однако оно имеет некоторые ограничения, когда приложение размещено на нескольких узлах, поскольку каждый раз, когда Kubernetes перезапускает модуль Pod, он может быть запущен на другом узле, в результате чего IP-адрес вашего приложения может быть изменен. Более того, использование hostNetwork создает некоторые проблемы с коллизиями портов, когда вы планируете масштабировать свое приложение в кластере Kubernetes, и поэтому не рекомендуется его реализовывать при начальной загрузке кластера Kubernetes в облачных средах.

Если вы не планируете использовать оверлейную сеть для связи с модулями в качестве существенной части модели Cluster Networking , то вы можете потерять некоторые существенные преимущества, такие как функция разрешения DNS ( CoreDNS , Кубэ-DNS ).

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

...