Erstellen Sie eine einzelne ausgehende IP für ein bestimmtes Netzwerk

12

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:

  1. Ich muss eine Box ausschließlich für NAT-Zwecke einrichten und warten
  2. Es ist nicht HA; Wenn diese Instanz oder Verfügbarkeitszone ausfällt, können meine anderen Instanzen den Datenverkehr nicht extern weiterleiten
  3. 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?

rob-cng
quelle
Ich glaube, die beste Option für Sie ist das Einrichten eines VPN, das auch bei der Verwendung von GKE hilfreich ist. Zum Beispiel: serverfault.com/questions/750389/gke-pod-connecting-via-vpn , und es ist kostengünstig.
George
@ George Ich glaube nicht, dass VPN dafür funktionieren würde, weil ich die andere Seite nicht kontrolliere. Nach wie vor würde ich kein VPN mit dem Drittanbieter einrichten. Ich muss den Verkehr über das Internet leiten.
Rob-Cng
1
NAT Gateway sollte es also tun, aber dies wird einen einzigen Fehlerpunkt verursachen. Eine Sache, die auch in den Sinn kam, statische IPs für Ihre Instanzen zu haben und sie von der anderen Partei auf die Whitelist zu setzen. Wenn Sie eine der Instanzen löschen möchten, bleibt die IP-Adresse weiterhin reserviert, die Sie an neu erstellte Instanzen anhängen können. Und solange die IP verwendet wird (an eine Instanz angehängt), ist sie kostenlos.
George
Ja, ich denke, wir müssen mit dieser Problemumgehung fortfahren, bis GCP NAT als Service ähnlich wie AWS herausbringt. Vielen Dank
rob-cng
1
Konnten Sie dieses Problem jemals lösen? In diesem
Fall sollten

Antworten:

3

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.

Parag
quelle