Мне нужна помощь с некоторыми более глубокими сетевыми вещами. Надеюсь, кто-то может мне помочь или, по крайней мере, подтолкнуть меня в правильном направлении.
На данный момент у меня есть установка кластера kubernetes с двумя узлами (VPS) с microk8s.
Тестирование с развертыванием веб-сайтов отлично работает, маршрутизация основана на входе :-)
Но теперь я хочу развернуть другие сервисы, доступные через порты. Я не хочу использовать NodePort, так как используемые порты всегда будут выше 30000. Вместо этого я хочу использовать собственные порты, может быть, 21 для FTP-сервера или что-то в этом роде.
Более глубокое чтение привело меня к расширению metalLB (LoadBalancer для «голого железа» K8S).Но, к сожалению, metalLb хочет IP спектр поэтому я не могу использовать разные общедоступные IP-адреса. Обе мои машины имеют очень разные общедоступные IP-адреса на eth0, доступные из Интернета.
В качестве решения я установил вторую сетевую карту на обе машины (eth1) с локальной сетью (192.168.1.10-192.168.1.11). Теперь у меня есть ряд IP-адресов, которые я могу предоставить для конфигурации metalLB.
На обоих хостах я могу пропинговать другую машину по ее локальному адресу, поэтому локальная сеть работает.
Но развертывание (например, FTP) открыло порт на адресе локальной сети, возможно, 192.168.1.11:21.
Это кажется правильным, поскольку я предоставляю эти LAN-IP для metalLB.
Теперь я хочу получить доступ к этой службе через общедоступный IP-адрес. На каждом хосте общедоступные IP-адреса (назовем их 5.5.5.5 и 6.6.6.6 чтобы было понятно, что они не местные) являются шлюзами по умолчанию, поэтому НЕТ шлюза по умолчанию для IP-адресов локальной сети (192.168.1.х)
Я предполагаю, что мне нужно немного DNAT / SNAT для маршрутизации трафика, поступающего на общедоступный IP-адрес хоста на второй сетевой адаптер (eth1), где служба прослушивает.
Наконец я немного поиграл с IPTABLES и попытался натировать трафик между интерфейсами, но без везения.
Я использую последнюю версию Ubuntu на обоих хостах, порт 21 открыт в брандмауэре на обоих хостах...
Но, наконец, я хочу использовать несколько сервисов с разными портами. TCP и UDP, а также.
Возможно ли это решение вообще?
Спасибо за любые идеи!