Мы запускаем кластер K8S в частной сети за брандмауэром с неприятными правилами обратного NAT, которые не позволяют нашим хостам подключаться к себе через publi c IP.
Проблема
Изнутри модуля мне нужно подключиться к службе, которая разрешена для publi c IP 203.X.X.X
, что невозможно. Однако я могу подключиться к этой службе через частный IP-адрес 192.Y.Y.Y
Я могу настроить iptables правило на узле, на котором запущен модуль, следующим образом:
iptables -A OUTPUT -t nat -p tcp -d 203.X.X.X --dport 80 -j DNAT --to-destination 192.Y.Y.Y:80
Тогда я смогу успешно подключиться к службе из узла, но не из модуля, запущенного на этом узле.
Решение с hostAliases не будет работать, так как мы:
- не знаем имена хостов заранее
- хотели бы перенаправить весь трафик c для известных publi c (недоступных) IP-адресов для соответствующих частных IP-адресов
PS: Мы используем calico в качестве сетевого плагина