Стабильный общедоступный IP-адрес или диапазон IP-адресов для исходящих подключений в GKE

Я использую Google Kubernetes Engine для запуска модулей по запросу. Каждый модуль публично доступен в Интернете с помощью службы nodeport.

Я ищу в GKE способ получить один IP-адрес или диапазон IP-адресов для исходящих подключений, чтобы передать их сторонним API-интерфейсам для внесения их в белый список.

IP-адреса узлов GKE неуправляемы при автоматическом масштабировании узлов или когда Я их модернизирую. Мне нужен способ поддерживать согласованный исходящий IP.

Я пробовал использовать простой NAT-шлюз для узлов Kubernetes (используя пример из здесь ), и пока он маршрутизирует исходящие соединения к шлюзу NAT, он прерывает входящий трафик к модулям (служба Nodeport), поскольку они отбрасываются на шлюзе NAT.

  • Есть ли диапазон IP-адресов по умолчанию для облачной области Google, который я могу предоставить третьей стороне для внесения в белый список (или)

  • Если GKE предоставляет способ выбора внешних IP-адресов узла из предварительно зарезервированного списка статических IP-адресов (или)

  • Есть ли другой способ получить единственный статический IP-адрес или диапазон IP-адресов, который представляет исходящий трафик от модулей

. Я нашел похожие вопросы, такие как this , но они не Я не решаю мою проблему, так как модули должны иметь внешнее подключение, что ломается при использовании NAT.

11
задан 11 April 2018 в 17:52
3 ответа

Google Cloud теперь предоставляет управляемую службу шлюза NAT - Cloud NAT .

Этот шлюз может использоваться с кластером GKE, который предоставляет стабильный общедоступный исходящий IP-адрес всем модулям внутри него, что позволяет им быть внесенными в белый список сторонними поставщиками услуг.

Пример реализации использования Cloud NAT с GKE представлен здесь - https://cloud.google.com/nat/docs/gke-example

3
ответ дан 2 December 2019 в 21:56

Вы можете попробовать это решение :

https://cloud.google.com/solutions/using-a-nat-gateway-with-kubernetes-engine

При нормальных обстоятельствах узлы Google Kubernetes Engine маршрутизируют весь трафик выхода через интернет-шлюз, связанный с их узловым кластером. Соединение с интернет-шлюзом, в свою очередь, определяется сетью Compute Engine, связанной с кластером узлов. Каждый узел в кластере имеет эпизодический внешний IP-адрес. Когда узлы создаются и разрушаются во время автомасштабирования, новые IP-адреса узлов выделяются автоматически.

Поведение шлюза по умолчанию хорошо работает при нормальных условиях. Однако, вы можете захотеть изменить способ распределения одноразовых внешних IP-адресов, чтобы:

  • Предоставить стороннему сервису постоянный внешний IP-адрес.
  • Мониторинг и фильтрация эвакуационного трафика из кластера Google Kubernetes Engine.
0
ответ дан 2 December 2019 в 21:56

Лучше всего для этой установки использовать службу LoadBalancer или ресурс Ingress для обработки входящих запросов, вы можете назначить один статический IP для всех ваших капода, независимо от того, насколько он масштабируется. Затем используйте предоставленный вами пример для исходящего трафика.

Внешние IP-адреса, назначенные каждому узлу, эфемерны и выбираются из диапазона доступных Google IP-адресов. Пожалуйста, смотрите этот пост стека , в котором обсуждается, как найти список IP-адресов Google.

.
1
ответ дан 2 December 2019 в 21:56

Теги

Похожие вопросы