Kubernetes Pod Oubound Traffi c правило DNAT - PullRequest
0 голосов
/ 18 июня 2020

Мы запускаем кластер 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 в качестве сетевого плагина

...