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

Создайте единый исходящий IP-адрес для данной сети

Я пытаюсь определить лучший способ в GCP назначить один внешний IP-адрес для OUTBOUND трафика. Мой вариант использования: мне нужно предоставить статический IP-адрес третьей стороне, чтобы они могли внести его в белый список, чтобы мои экземпляры могли получить доступ к их API. Поскольку в будущем я могу добавлять или удалять экземпляры GCE, я не хочу давать им несколько статических IP-адресов, которые могут измениться.

Я нашел похожий вопрос Вот но не был уверен, что это относится к моему варианту использования.

У меня настроена стандартная сеть GCP; нет VPN, и все виртуальные машины имеют уникальные внешние IP-адреса. Мне действительно нравится этот способ, потому что мне нужно иметь возможность подключаться к виртуальным машинам по SSH. Но от моих виртуальных машин к Интернету я бы хотел, чтобы трафик выглядел так, будто все идет с одного IP. Сразу приходит в голову мысль, на которую намекают документы, - это создать экземпляр NAT, а затем направить через него исходящий трафик. Несколько проблем с этим подходом:

  1. Я должен установить и поддерживать ящик исключительно для NAT
  2. Это не HA; если этот экземпляр или зона доступности выйдет из строя, другие мои экземпляры не смогут перенаправлять трафик извне
  3. Это не кажется очень повторяемым, если мне придется воссоздавать конфигурацию в будущем

В частности, в этом проекте я использую GKE / Kubernetes. Есть ли лучшая практика для реализации этого варианта использования: высокая доступность, низкие затраты на обслуживание и повторяемость?

Вы можете сделать это, направив весь свой трафик через один экземпляр, который выполняет NAT для других экземпляров. У Google есть руководство для этого на https://cloud.google.com/compute/docs/networking#natgateway

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

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

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

Кроме того, поскольку это управляемый программный NAT, пропускная способность и доступность не пострадают.

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