In diesem Dokument wird erläutert, wie Sie die zuverlässige Kommunikation konfigurieren können, indem Sie bestimmten Pods in Ihren Google Kubernetes Engine-Clustern (GKE) eine oder mehrere nichtflüchtige IP-Adressen zuweisen. Für Anwendungen, die eine hohe Verfügbarkeit erfordern, können Sie diese nichtflüchtigen IP-Adressen auch so konfigurieren, dass sie ein schnelles Failover unterstützen oder das Load-Balancing auf Grundlage von Systemdiagnosen verwenden.
In bestimmten Fällen, in denen Sie eine benutzerdefinierte NAT-Lösung (Network Address Translation) ausführen, benötigen Sie möglicherweise eine statische nichtflüchtige IP-Adresse für ausgehende und eingehende Verbindungen, entweder wenn die NAT-Lösung die Verbindung initiiert oder wenn sie sie empfängt. Möglicherweise möchten Sie auch die IP-Adressen steuern, die der Anwendung zugewiesen sind, um zu verwalten, wie sie mit anderen Systemen interagiert oder wie sie bestimmte Arten von Anfragen gemäß Ihren geschäftlichen Anforderungen verarbeitet.
Standardmäßig verwendet der Pod seine Schnittstellen-IP-Adressen für ausgehenden Traffic. Schnittstellen-IP-Adressen ändern sich, wenn der Pod neu gestartet oder verschoben wird. Wenn Sie die Routing-Kommunikation besser steuern möchten, können Sie nichtflüchtige IP-Adressen manuell für Ihre Pods in GKE konfigurieren.
Diese IP-Adressen können entweder externe IP-Adressen für die Kommunikation über das Internet oder interne IP-Adressen für die Kommunikation innerhalb Ihres Google Cloud Netzwerks sein. Sie können entweder von Google bereitgestellte IP-Adressen verwenden oder Ihre eigenen IP-Adressen (BYOIP) verwenden.
Durch das Konfigurieren nichtflüchtiger IP-Adressen für Pods in GKE können Sie die Anwendungs- und Geschäftslogik so zuordnen, dass bestimmte Pods Traffic an eine der nichtflüchtigen IP-Adressen senden und von diesen empfangen können.
Das folgende Diagramm zeigt, wie ein Pod mit mehreren Netzwerkschnittstellen eine nichtflüchtige IP-Adresse aus einem sekundären Netzwerk verwenden kann, während er weiterhin über das Standardnetzwerk kommuniziert:
Terminologie und Konzepte
Auf dieser Seite werden die folgenden Konzepte verwendet:
Load-Balancing auf Grundlage von Systemdiagnosen
Verwenden Sie das Load-Balancing auf Grundlage von Systemdiagnosen, wenn Sie Traffic von einer nichtflüchtigen IP-Adresse auf mehrere aktive Pods verteilen möchten, die einem bestimmten Label-Selektor entsprechen. Diese Funktion verwendet regionale Systemdiagnosen, die Sie erstellen, um Pods ständig zu überwachen und dafür zu sorgen, dass Traffic nur an fehlerfreie Endpunkte weitergeleitet wird. Sie können auch Standby-Pods (Backup-Pods) für die nichtflüchtige IP-Adresse konfigurieren. GKE leitet Traffic nur dann automatisch an diese Standby-Pods weiter, wenn alle primären aktiven Pods die Systemdiagnosen nicht bestehen. Diese Konfiguration verhindert, dass einzelne Pods bei einem Fehler überlastet werden, und sorgt für eine kontinuierliche Dienstverfügbarkeit.
Gateway-Klassen
Gateway-Klassen, die Ihre nichtflüchtigen IP-Adresszuweisungen verwalten, sind in den folgenden Klassen verfügbar:
- gke-persistent-regional-external-managed für externe IP-Adressen
- gke-persistent-regional-internal-managed für interne (Google Cloud-nur) IP-Adressen
- gke-persistent-fast-regional-external-managed für externe IP-Adressen mit schnellem Failover
- gke-persistent-fast-regional-internal-managed für interne (Google Cloud-nur) IP-Adressen mit schnellem Failover
Die folgenden Gateway-Klassen gelten für das Load-Balancing auf Grundlage von Systemdiagnosen:
- gke-passthrough-lb-internal-managed für interne (Google Cloud-nur) nichtflüchtige IP-Adressen, die von mehreren Pods gemeinsam genutzt werden.
gke-passthrough-lb-external-managed für externe nichtflüchtige IP-Adressen, die von mehreren Pods gemeinsam genutzt werden.
Gateway-Klassen funktionieren in bestimmten Regionen. Gateway-Klassen bieten eine grundlegende IP-Adressverwaltung und konzentrieren sich auf das Netzwerkrouting der Schicht 3 (L3).
In der folgenden Tabelle werden die Funktionen der einzelnen Gateway-Klassen verglichen:
| Funktion | Gateway-Klassen vom Typ „gke-persistent-*“ | Gateway-Klassen vom Typ „gke-passthrough-lb-*“ |
|---|---|---|
| Hauptziel | Nichtflüchtige IP-Adresse für eine einzelne Arbeitslast. | Load-Balancing für mehrere Arbeitslasten. |
| Pod-Zuordnung | 1:1 (leitet an den zuletzt erstellten übereinstimmenden Pod weiter). | 1:N (verteilt Traffic auf alle fehlerfreien übereinstimmenden Pods). |
| Systemdiagnosen | Für Routing-Entscheidungen nicht unterstützt. | Erforderlich (verwendet regionale Systemdiagnosen). |
| Backup-Pods | Nicht unterstützt. | Unterstützt (verwendet Standby-Pods für das Failover). |
| Failover-Geschwindigkeit | Standard oder schnell (verwendet Klassen vom Typ *-fast-*). |
Mit Systemdiagnoseparametern konfigurierbar |
Gateway-Objekte
Gateway-Objekte dienen als zentraler Punkt für die Verwaltung und Konfiguration
nichtflüchtiger IP-Adressen. Gateway-Objekte in GKE verwalten einen Pool
nichtflüchtiger IP-Adressen. Sie listen diese Adressen auf und definieren Regeln dafür, wie
diese IP-Adressen GKEIPRoute zugewiesen werden können.
Listener
Ein Listener ist Teil Ihrer GKE-Gateway-Konfiguration, mit der gesteuert wird, welche Pods in Gateway-Namespaces die nichtflüchtigen IP-Adressen verwenden können, die vom Gateway verwaltet werden. Mit dem Listener können Sie den Zugriff anpassen, um Flexibilität und Sicherheit zu gewährleisten. Jeder Listener benötigt einen eindeutigen Namen und ermöglicht es Ihnen, den Zugriff nach Namespace zu filtern (alle, labelbasiert oder nur der Namespace des Gateways).
GKEIPRoute-Objekt
Das GKEIPRoute-Objekt ist eine benutzerdefinierte Ressource, die Sie konfigurieren, um
einem bestimmten Pod in Ihrem GKE
Cluster eine nichtflüchtige IP-Adresse zuzuweisen. Im Statusbereich des GKEIPRoute-Objekts können Sie die Einrichtung Ihrer nichtflüchtigen IP-Adresse überwachen. Dort finden Sie wichtige Informationen in den folgenden Feldern:
Pod
Im Feld Pod sehen Sie den genauen Namen des Pods, der mit den nichtflüchtigen IP-Adressen verknüpft ist. Ein einzelner Pod kann mehrere nichtflüchtige IP-Adressen verwenden.
Bedingungen
Das Feld Bedingungen gibt an, ob die Einrichtung Ihrer externen IP-Adresse ordnungsgemäß funktioniert. Außerdem können Sie damit Probleme diagnostizieren, wenn Ihre Konfiguration ungültig ist. Es gibt vier Bedingungen:
Accepted:Gibt an, ob dieGKEIPRoute-Ressourcenspezifikation gültig ist. Wenn Ihre Konfiguration Fehler enthält, ist die BedingungAcceptedaufFalsegesetzt und ein Grund wird angegeben.GCPReady: Gibt an, dass Google Cloud alle erforderlichen Ressourcen vorbereitet hat. Fehler bei der Google Cloud Bereitstellung von Ressourcen werden im Status derGCPReadyBedingung angezeigt.DPV2Ready:Gibt den Status der Datenpfadprogrammierung an, z. B. wenn der Datenpfad bereit und programmiert ist, um Netzwerkverbindungen auf den konfigurierten nichtflüchtigen IP-Adressen zuzulassen.Ready:Gibt an, dass die Einrichtung Ihrer nichtflüchtigen IP-Adresse gültig und funktionsfähig ist. Die Pods sind über die nichtflüchtigen IP-Adressen erreichbar, sofern Sie Ihre Anwendung so konfiguriert haben, dass sie diese verwendet. Diese Bedingung wird aufTruegesetzt, wenn auch alle drei vorherigen BedingungenTruesind.
nodeSelectorWenn Sie das schnelle Failover verwenden, müssen Sie im Feld
nodeSelectorangeben, welche Knoten für das schnelle Failover vorkonfiguriert sind. So können Sie bei einem Failover den neuen Pod schnell auf einem bestimmten Knoten mit der nichtflüchtigen IP-Adresse online schalten. Achten Sie darauf, dass Sie Ihre Pods mit nichtflüchtigen IP-Adressen auf diesen Knoten planen. Normalerweise tun Sie dies, indem Sie mit demnodeSelectordes Pods Labels auf den Knoten abgleichen. Verwenden Sie das FeldnodeSelector, wenn Sie das schnelle Failover konfigurieren, und achten Sie darauf, dass mit den angegebenen Labels nicht mehr als 64 Knoten ausgewählt werden.
Die folgenden Felder gelten nur für das Load-Balancing auf Grundlage von Systemdiagnosen:
loadBalancing: Gibt den Namen der regionalen Systemdiagnose an, mit der der Status der Pods überwacht wird.backupPodSelector: Definiert die Gruppe von Pods, die Traffic empfangen, wenn alle primären Pods fehlerhaft sind.
Reaktionsmodi
Reaktionsmodi bestimmen, wie sich das System verhält, wenn sich der Pod ändert, der mit einer nichtflüchtigen IP-Adresse verknüpft ist, z. B. wenn er zwischen Knoten verschoben wird oder wenn ein neu erstellter übereinstimmender Pod verfügbar wird. Mit Reaktionsmodi können Sie dafür sorgen, dass Ihre nichtflüchtigen IP-Adressen auch dann verwendet werden können, wenn sich Ihre Pods ändern.
Reaktionsmodi sind einer der folgenden Modi:
ReadyCondition
Im Modus ReadyCondition priorisiert das System nichtflüchtiger IP-Adressen den Pod-Zustand. Das System nichtflüchtiger IP-Adressen weist IP-Adressen nur Pods zu, die den angegebenen Labels entsprechen und Kubernetes-Systemdiagnosen bestanden haben. Dabei wird der Status
ReadyalsTruesignalisiert. Dieser Modus ist ideal für Anwendungen, bei denen es entscheidend ist, dass der Pod, der die nichtflüchtige IP Adresse erhält, vollständig bereit ist, eingehenden und ausgehenden Traffic zu verarbeiten.Vorhanden
Im Modus Vorhanden wird die Existenz eines Pods priorisiert. Die nichtflüchtige IP Adresse wird an einen Pod angehängt, wenn dieser Pod den Labels in Ihrer Konfiguration entspricht und auf einem bestimmten Knoten in Ihrem Cluster geplant wurde. Das bedeutet, dass der Pod vorhanden ist und einen bestimmten Ort hat, an dem er ausgeführt werden kann. Dieser Modus eignet sich gut für Szenarien, in denen eine schnelle Zuweisung der nichtflüchtigen IP-Adresse Vorrang vor strikter Bereitschaft hat, oder in Umgebungen wie denen für Entwicklung und Tests, in denen eine sofortige Konnektivität wichtiger sein kann als die vollständige Anwendungsbereitschaft.
StatefulSets
StatefulSets sind eine Art von Kubernetes-Arbeitslast, die für Anwendungen entwickelt wurde, die stabile IDs und nichtflüchtigen Speicher benötigen. Pods in einem StatefulSet haben vorhersagbare Namen (z. B. „my-app-0“, „my-app-1“).
Deployments
Deployments sind eine Art von Kubernetes-Arbeitslast zum Verwalten zustandsloser Anwendungen, bei denen Pods im Allgemeinen austauschbar sind. Pod-Namen in Deployments sind nicht vollständig vorhersagbar.
Anwendungsfälle
Nichtflüchtige IP-Adressen für GKE-Pods eignen sich für verschiedene Anwendungsfälle für Netzwerk- und Sicherheitsdienstanbieter, die netzwerkbezogene Anwendungen in GKE ausführen.
Nichtflüchtige IP-Adressen für GKE-Pods eignen sich für folgende Anwendungsfälle:
- Kontrolle über NAT:Wenn Sie Pods, auf denen Netzwerkfunktionen ausgeführt werden, nichtflüchtige IP-Adressen zuweisen, erhalten Sie eine detaillierte Kontrolle über die Quell-IP-Adressen, die für ausgehenden Traffic verwendet werden. So können Sie Ihre proprietäre NAT-Logik integrieren.
- Dedizierte IP-Adresspools:Mit dedizierten IP-Adressen können Sie bestimmte Adressen einzelnen 5G Core-Pods zuordnen und so die Kompatibilität mit spezieller Anbietersoftware gewährleisten.
- Zuverlässige Traffic-Flüsse:Da der Rück-Traffic über dieselbe Netzwerkfunktion zurückgeleitet werden muss, sorgen nichtflüchtige IP-Adressen dafür, dass externe Systeme den richtigen Pod erkennen und darauf reagieren, ohne dass die Kommunikation unterbrochen wird.
- Hochverfügbarkeit für zeitkritische Anwendungen:Für Anwendungen mit strengen Verfügbarkeitsanforderungen, z. B. in der Telekommunikationsbranche, können Sie persistente IP-Adressen mit schnellem Failover verwenden, um Traffic bei einem Fehler schnell an einen fehlerfreien Pod weiterzuleiten. So lässt sich die Ausfallzeit auf wenige Sekunden reduzieren.
- Traffic-Verteilung:Wenn Sie das Load-Balancing auf Grundlage von Systemdiagnosen verwenden, verteilt GKE den Traffic auf mehrere aktive Pods, um eine Überlastung einer einzelnen Instanz zu vermeiden. Wenn keine fehlerfreien Pods verfügbar sind, können Sie Backup-Pods in verschiedenen Namespaces oder Knoten konfigurieren.
Vorteile
Nichtflüchtige IP-Adressen für GKE-Pods bieten Ihnen folgende Vorteile:
- Externe Identität:Wenn Sie einem Pod eine externe nichtflüchtige IP-Adresse zuweisen, können externe Systeme diesen Pod immer erreichen, auch wenn er neu gestartet oder innerhalb des Clusters verschoben wird. Das ist hilfreich für Dienste, die einen extern auffindbaren Endpunkt benötigen.
- Zuverlässige Kommunikation:Anwendungen, die von anderen Ressourcen mit bestimmten IP-Adressen abhängig sind, können mit nichtflüchtigen IP-Adressen zuverlässig Verbindungen herstellen. Nichtflüchtige IP-Adressen sind wichtig für Legacy-Systeme oder Anwendungen mit fest codierten IP-Adressabhängigkeiten.
- Legacy-Migrationen: Legacy-Migrationen können bei der Migration von Anwendungen helfen, die während des Übergangs bestimmte IP-Adressen benötigen.
- BYOIP: Mit BYOIP können Sie die Kontrolle über bestimmte IP-Adress bereiche behalten, die Sie bereits besitzen, indem Sie sie in Ihren GKE-Clustern verwenden.
- Verbesserte Verfügbarkeit von Anwendungen: Mit der Funktion für schnelles Failover können Sie die Verfügbarkeit Ihrer kritischen Anwendungen erheblich verbessern, indem Sie die Ausfallzeit bei einem Pod-Fehler auf wenige Sekunden reduzieren.
- Hochverfügbarkeit mit automatischem Failover: Erzielen Sie Serviceverfügbarkeit, indem Sie Traffic automatisch an fehlerfreie Standby-Pods weiterleiten, wenn primäre Pods die Systemdiagnosen nicht bestehen.
Nächste Schritte
- Kommunikation mit nichtflüchtigen IP-Adressen auf GKE-Pods steuern
- Load-Balancing auf Grundlage von Systemdiagnosen einrichten
- Informationen zur Unterstützung mehrerer Netzwerke für Pods
- Lesen Sie Unterstützung mehrerer Netzwerke für Pods einrichten.