Неинвазивная многоадресная рассылка UDP в Куберне

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

        - containerPort: 12345
          hostPort: 12345
          protocol: UDP

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

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

1 ответ

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

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

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

Другие вопросы по тегам