Назад | Перейти на главную страницу

статический исходящий IP на GKE

Я запускаю в кластере GKE (1.15.12-gke.2) некоторые приложения, которым необходимо подключиться к стороннему API. Этот сторонний API имеет обязательную фильтрацию IP. Итак, чтобы получить авторизацию API, мне нужно объявить, какой общедоступный IP-адрес я буду использовать для подключения к API. Моя проблема в том, что общедоступные IP-адреса узлов GKE нестабильны при обновлении, и это предотвратит использование автомасштабирования узлов, и после каждого перезапуска узлов IP-адрес будет меняться.

Есть ли способ получить стабильный исходящий общедоступный IP-адрес на GKE?

Спасибо - Ашок Патидар

Как я сказал в своем комментарии, решение иметь статический исходящий IP-адрес в GKE использовать Cloud NAT.

Отказ от ответственности!

А Cloud NAT шлюз может выполнять NAT для узлов и модулей в частный кластер, который является типом кластера с собственным VPC.

Cloud.google.com: NAT: Документы: Обзор: NAT с GKE

Вы можете узнать больше о приватном GKE кластеры по следующей официальной документации:

Также есть официальное руководство, показывающее процесс создания приватного GKE кластер, а затем подключив его к Cloud NAT:

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


Я запустил тест, в котором я создал приват GKE кластер с 3 узлами. Создал поды, каждый из которых был запланирован на отдельном узле. Каждый модуль отправил пакет на удаленный сервер. Прослушивание на удаленном сервере показало, что каждый модуль, отправивший сообщение, имел один и тот же исходный IP-адрес:

tcpdump: listening on ens4, link-type EN10MB (Ethernet), capture size 262144 bytes
14:06:11.692832 IP (tos 0x0, ttl 54, id 46751, offset 0, flags [DF], proto TCP (6), length 60)
    35.198.XXX.XXX.1027 > 10.168.0.2.9833: # NODE1 (POD1) TO SERVER
    10.168.0.2.9833 > 35.198.154.155.1027: # REPLY TO (POD1)
    35.198.XXX.XXX.2051 > 10.168.0.2.9833: # NODE2 (POD2) TO SERVER
    10.168.0.2.9833 > 35.198.154.155.2051: # REPLY TO (POD2)
    35.198.XXX.XXX.1538 > 10.168.0.2.9833: # NODE3 (POD3) TO SERVER
    10.168.0.2.9833 > 35.198.154.155.1538: # REPLY TO (POD3)