Ich versuche, in GCP den besten Weg zu finden, um eine einzelne externe IP-Adresse für den OUTBOUND-Verkehr zuzuweisen. Mein Anwendungsfall: Ich muss einer dritten Partei eine statische IP-Adresse bereitstellen, damit sie diese auf die Whitelist setzen kann, damit meine Instanzen auf ihre API zugreifen können. Da ich in Zukunft möglicherweise GCE-Instanzen hinzufügen oder entfernen werde, möchte ich ihnen nicht mehrere statische IP-Adressen zuweisen, die sich ändern könnten.
Ich habe hier eine ähnliche Frage gefunden , war mir aber nicht sicher, ob sie meinen Anwendungsfall anspricht.
Ich habe ein Standard-GCP-Netzwerk eingerichtet. Es gibt keine VPNs und alle VMs haben eindeutige externe IPs. Ich mag es wirklich so, weil ich in der Lage sein muss, zu den VMs SSH. Aber von meinen VMs zum Internet möchte ich, dass der Datenverkehr so aussieht, als stamme alles von einer einzigen IP. Der unmittelbare Gedanke, der mir in den Sinn kommt und auf den die Dokumentation hinweist, ist, eine NAT-Instanz zu erstellen und dann den ausgehenden Verkehr durch diese zu leiten. Ein paar Probleme mit diesem Ansatz:
- Ich muss eine Box ausschließlich für NAT-Zwecke einrichten und warten
- Es ist nicht HA; Wenn diese Instanz oder Verfügbarkeitszone ausfällt, können meine anderen Instanzen den Datenverkehr nicht extern weiterleiten
- Es scheint nicht sehr wiederholbar zu sein, wenn ich die Konfiguration in Zukunft neu erstellen muss
Insbesondere verwende ich GKE / Kubernetes für dieses Projekt. Gibt es eine bewährte Methode für diesen Anwendungsfall, die HA, wartungsarm und wiederholbar ist?
quelle
Antworten:
Sie können dies tun, indem Sie den gesamten Datenverkehr über eine einzelne Instanz routen, die NAT für die anderen Instanzen ausführt. Google hat eine Anleitung dazu unter https://cloud.google.com/compute/docs/networking#natgateway
quelle
Google Cloud bietet jetzt einen verwalteten NAT-Gateway-Dienst - Cloud NAT .
Dieses Gateway kann mit einem GKE-Cluster verwendet werden, der eine stabile öffentliche Ausgangs-IP für alle darin enthaltenen Pods bereitstellt, sodass diese von Drittanbietern auf die Whitelist gesetzt werden können.
Die Beispielimplementierung für die Verwendung von Cloud NAT mit GKE finden Sie hier: https://cloud.google.com/nat/docs/gke-example
Da es sich um ein verwaltetes, softwarebasiertes NAT handelt, werden Bandbreite und Verfügbarkeit nicht beeinträchtigt.
Dies erfordert jedoch immer noch einen Bastion-Host, um in Ihre Instanzen ssh zu können.
quelle