Сопоставьте порт узла напрямую с модулем, минуя службы и вход - PullRequest
0 голосов
/ 21 июня 2020

Есть ли способ сопоставить порт напрямую от узла к модулю, работающему на том же узле, в обход служб, балансировщиков нагрузки и входящего трафика. Таким образом, в основном, если модуль развернут на узле X, тогда узел X должен прослушивать порт 1234 и отображать этот порт непосредственно в модуль, также работающий на узле X на порту 1234. Таким образом, в основном не будет межузловых соединений. И на каком бы узле Kubernetes ни решил развернуть POD, этот узел теперь является новым хостом для внешних подключений.

Я полностью осознаю, что это противоречит всем принципам проектирования кластера Kubernetes. Но я пытаюсь разместить старое облачное приложение для пользовательской сборки, которое было создано для единственного пользовательского облачного решения, и посмотреть, смогу ли я разместить его на Kubernetes, но для каждого POD в наборе с отслеживанием состояния требуется выделенный IP-адрес publi c, назначенный для это как publi c IP, отправленный на внешние устройства для перенаправления их на правильный POD. Протокол также является индивидуальным, поэтому для этого не существует балансировщика нагрузки уровня 7. Итак, единственное решение, которое я могу придумать, - это прямое отображение портов от узла к POD.

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Вы можете использовать hostNetwork: true и dnsPolicy: ClusterFirstWithHostNet в pod spe c

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  hostNetwork: true
  dnsPolicy: ClusterFirstWithHostNet
  containers:
    - name: nginx
      image: nginx
      ports:
        - containerPort: 8080

Это означает, что модуль будет прослушивать порт 8080 напрямую, используя сеть хоста, и к нему можно получить доступ через nodeip:8080 без создания service или ingress.

0 голосов
/ 21 июня 2020

Рассматривали ли вы использование Service с типом NodePort? Это даст вам "stati c" порт на каждом узле, на котором развернут модуль. Номер порта будет высоким (30000+), но надежным. Это описано в описательной документации .

...