#google-cloud-platform #vpn #nat #google-cloud-vpn
#google-облачная платформа #vpn #nat #google-cloud-vpn
Вопрос:
В настоящее время я разрабатываю приложение nodejs, развернутое в кластере GKE в облачной платформе Google. Этому приложению потребуется вызвать сторонний API, который доступен только через VPN, поэтому мне нужно установить VPN-соединение между сайтами в сети стороннего поставщика API.
Я знаю, что VPN между сайтами может быть реализована с использованием GCP Cloud VPN, и у меня есть предыдущий опыт использования GCP Cloud VPN. Но проблема для меня в том, что этот сторонний API разрешает только один IP-адрес от моего VPC, получающего доступ к их сети, что является проблемой, поскольку все модули в кластере GKE имеют свой собственный эфемерный IP.
Вопрос в том, как я могу выполнить исходящий вызов API из кластера GKE в сторонний API, поступающий только с одного IP-адреса, чтобы администратор стороннего поставщика мог внести этот единственный IP-адрес в белый список для доступа к их API?
Я подумываю об использовании одной виртуальной машины Linux в качестве маршрутизатора nat, чтобы вызов API для стороннего API сначала проходил через этот маршрутизатор nat, а затем с маршрутизатора nat на шлюз Cloud VPN. Но когда я смотрю на таблицу маршрутов VPC, я просто не вижу, как можно реализовать этот метод, поскольку в таблице маршрутов VPC я не могу указать конкретный сегмент сети в качестве источника. Я могу только установить пункт назначения и следующий переход, который повлияет на все экземпляры в VPC.
Это текущая топология моего VPC для справки :
Это то, что можно сделать в GCP, или, может быть, я неправильно смотрю на проблему?
Спасибо
Ответ №1:
Вопрос в том, как я могу выполнить исходящий вызов API из кластера GKE в сторонний API, поступающий только с одного единственного IP-адреса
Похоже, облачный NAT может решить вашу проблему здесь.
Если у вас есть частный кластер GKE и облачный NAT в одном регионе, при создании / настройке облачного NAT вы можете разрешить трафик из этого региона проходить только через облачный NAT.
Таким образом, у вас есть только один IP-адрес вызывающего абонента из всего вашего кластера GKE, и сторонний API не будет жаловаться на это.
сторонний API разрешит использовать только один IP-адрес с моего VPC
Для этого вы можете зарезервировать внешний IP-адрес и назначить его своему экземпляру Cloud NAT. Фактически, это можно сделать «на лету» при создании экземпляра Cloud NAT.
Для получения более подробной информации о том, как создать и использовать Cloud NAT, вы можете ознакомиться с документацией. Использование Cloud NAT позволяет избежать отображения вашего внешнего IP-адреса во внешнем Интернете.
Ниже приведены некоторые ссылки: