Я пытаюсь определить лучший способ в GCP назначить один внешний IP-адрес для внешнего трафика. Мой пример использования: мне нужно предоставить статический IP-адрес третьей стороне, чтобы они могли внести его в белый список, чтобы мои экземпляры могли получить доступ к их API. Поскольку в будущем я могу добавлять или вычитать экземпляры GCE, я не хочу давать им несколько статических IP-адресов, которые могут измениться.
Я нашел подобный вопрос здесь, но не был уверен, что он касается моего варианта использования.
У меня настроена стандартная сеть GCP; нет никаких VPN, и все виртуальные машины имеют уникальные внешние IP-адреса. Мне это действительно нравится, потому что мне нужно иметь возможность подключаться к виртуальным машинам по SSH. Но от моих виртуальных машин до Интернета я хотел бы, чтобы трафик показывался, что все идет с одного IP. Мне сразу же пришла в голову мысль, на которую намекают документы: создать экземпляр NAT, а затем направить исходящий трафик через него. Несколько проблем с этим подходом:
- Я должен установить и поддерживать коробку исключительно для целей NAT
- Это не ГА; если этот экземпляр или зона доступности умрет, другие мои экземпляры не смогут направлять трафик извне
- Это не кажется очень повторяемым, если мне придется воссоздать конфигурацию в будущем
В частности, я использую GKE / Kubernetes для этого проекта. Есть ли лучшая практика для выполнения этого варианта использования, которая является HA, низкие эксплуатационные расходы и повторяемость?
источник
Ответы:
Вы можете сделать это путем маршрутизации всего вашего трафика через один экземпляр, который выполняет NAT для других экземпляров. Для этого есть руководство Google по адресу https://cloud.google.com/compute/docs/networking#natgateway.
источник
Google Cloud теперь предоставляет управляемый сервис NAT Gateway - Cloud NAT .
Этот шлюз может использоваться с кластером GKE, который обеспечивает стабильный общедоступный выходной IP-адрес всем модулям внутри него, что позволяет им быть в белом списке сторонними поставщиками услуг.
Пример реализации для использования Cloud NAT с GKE представлен здесь - https://cloud.google.com/nat/docs/gke-example.
Кроме того, поскольку это NAT на основе управляемого программного обеспечения, пропускная способность и доступность не будут затронуты.
Для этого все еще нужен хост-бастион, чтобы иметь возможность подключиться к ssh.
источник