Auf dieser Seite wird erläutert, wie Sie den Netzwerktraffic zwischen Pods und Services mithilfe von Firewallregeln auf Pod-Ebene steuern.
Mit Netzwerkrichtlinien für Anwendungen können Sie Regeln für den Kommunikationstraffic zwischen Pods definieren. Er steuert, wie Pods innerhalb ihrer Anwendungen und mit externen Endpunkten miteinander kommunizieren. Sie können Netzwerkrichtlinien für Pod-Netzwerke in GKE Enterprise-Clustern (Google Kubernetes Engine) aktivieren, für die Multi-Netzwerke aktiviert sind. Sie können Netzwerkrichtlinien für zusätzliche Pod-Schnittstellen erzwingen, die benutzerdefinierten Pod-Netzwerken entsprechen.
Vorteile von Multi-Netzwerk-Netzwerkrichtlinien
In folgenden Fällen können Sie Netzwerkrichtlinien für mehrere Netzwerke verwenden:
Erhöhte Netzwerksicherheit: Sie möchten vertrauliche Arbeitslasten oder Daten isolieren und schützen, indem Sie Netzwerkrichtlinien für bestimmte Pod-Netzwerke definieren. Durch Netzwerkrichtlinien mit mehreren Netzwerken wird das Risiko begrenzt und die Angriffsfläche reduziert.
Detailgenaue Trafficsteuerung: Sie möchten den Trafficfluss zwischen Pods und Services in verschiedenen Pod-Netzwerken genau steuern und damit komplexe Netzwerktopologien und Sicherheitsanforderungen ermöglichen.
Mehrmandantenfähige Umgebungen: Sie möchten isolierte Netzwerke für verschiedene Mandanten oder Anwendungen erstellen, damit sie die Kommunikation des jeweils anderen nicht beeinträchtigen können, während Sie die Kontrolle über den Netzwerkzugriff in jedem Pod-Netzwerk behalten.
Ressourcennutzung optimieren: Sie möchten Netzwerkrichtlinien in bestimmten Pod-Netzwerken implementieren, um Ressourcen effizient zuzuweisen und den Traffic anhand der Anwendungsanforderungen zu priorisieren und so die Leistung und Zuverlässigkeit zu verbessern.
Sicherheit für containerisierte Netzwerkfunktionen (CNFs): Sie möchten den Verwaltungs-Traffic vom Traffic der Datenebene innerhalb desselben Pods trennen, um potenzielle Sicherheitsverstöße und nicht autorisierten Zugriff zu verhindern.
Funktionsweise von Netzwerkrichtlinien für mehrere Netzwerke mit Pod-Netzwerken
Das folgende Diagramm zeigt, wie Netzwerkrichtlinien, die mithilfe von Annotationen auf bestimmte Pod-Netzwerke angewendet werden, den Trafficfluss zwischen Pods innerhalb eines GKE-Clusters steuern.
Das obige Diagramm zeigt mehrere Worker-Knoten, auf denen Pods (Containeranwendungen) ausgeführt werden, und wie sie innerhalb desselben Knotens oder über verschiedene Knoten mithilfe der Netzwerkinfrastruktur kommunizieren. Außerdem wird der Einsatz von Netzwerkrichtlinien zur Steuerung des Trafficflusses und die Segmentierung des Netzwerks mithilfe von VPCs und Subnetzen veranschaulicht, um die Sicherheit und Organisation zu verbessern.
- Traffic mit gezielten Netzwerkrichtlinien isolieren: Die Netzwerkrichtlinien wirken sich aufgrund der Annotation
networking.gke.io/network: blue-Pod-network
nur auf den Traffic im "blauen" Pod-Netzwerk aus. Der Traffic im Standard-Pod-Netzwerk bleibt uneingeschränkt. - Erzwingt Einweg-Traffic mit Pod-Netzwerkrichtlinien: Im vorherigen Diagramm erlauben Netzwerkrichtlinien Pod1, Traffic an Pod2 ins "blaue" Pod-Netzwerk zu senden. Pod2 kann im selben Netzwerk keinen Traffic zurück an Pod1 senden. Die Netzwerkrichtlinie für Pods mit dem Label "test-app-2" funktioniert als unidirektionaler Kanal. Insbesondere wird ausgehender Traffic nur zu Pods mit dem Label "test-app-3" zugelassen und die Kommunikation mit anderen Pods wie "test-app-1" verhindert.
- Lässt ausgehenden Traffic standardmäßig zu: Wenn für einen Pod (in diesem Beispiel Pod1) keine Richtlinie für ausgehenden Traffic definiert ist, wird der gesamte ausgehende Traffic standardmäßig auf der "blauen" Netzwerkschnittstelle zugelassen.
- Sicherstellen der Kompatibilität vorhandener Features: Alle standardmäßigen Optionen für GKE-Netzwerkrichtlinien wie Labelselektoren und IP-Adressblöcke funktionieren mit Netzwerkrichtlinien für mehrere Netzwerke.
- Steuert den Bereich der Netzwerkrichtlinien mit Annotationen:
- Wenn Sie eine Netzwerkrichtlinie ohne Annotation erstellen, wendet GKE Netzwerkrichtlinien für mehrere Netzwerke auf alle Netzwerkschnittstellen auf den Pods im ausgewählten Namespace an, unabhängig davon, mit welchen Pod-Netzwerken sie verbunden sind.
- Wenn Sie die Annotation einfügen und den Namen eines gültigen Pod-Netzwerks angeben (z. B.
networking.gke.io/network: blue-Pod-network
), wendet GKE die Richtlinie auf Pods an, die mit diesem bestimmten Pod-Netzwerk verbunden sind. - Wenn die Annotation auf das Pod-Netzwerk verweist, das in Ihrem Cluster nicht vorhanden ist, wendet GKE die Netzwerkrichtlinie überhaupt auf kein Pod-Netzwerk an. Das liegt daran, dass keine Pods mit dem angegebenen nicht vorhandenen Netzwerk verbunden sind.
- Hält die netzwerkübergreifende Kommunikation für Pods mit mehreren Netzwerkschnittstellen aufrecht: Wenn Sie eine Netzwerkrichtlinie anwenden, um den Traffic auf ein bestimmtes Pod-Netzwerk innerhalb eines Pods einzuschränken, wirkt sich diese nicht auf den Traffic in anderen Pod-Netzwerken aus, die mit demselben Pod verbunden sind.
Vorteile
Die Verwendung von Richtlinien für mehrere Netzwerke bietet folgende Vorteile:
Verbesserte Sicherheit: Sie können Risiken im Zusammenhang mit nicht autorisiertem Zugriff und seitlichen Bewegungen innerhalb des GKE-Clusters minimieren, indem Sie Netzwerkrichtlinien detailliert anwenden.
Flexibilität und Anpassung: Sie können Netzwerkrichtlinien an Ihre spezifischen Sicherheits- und Trafficverwaltungsanforderungen für verschiedene Pod-Netzwerke anpassen, indem Sie verschiedene Arbeitslasten und Anwendungen berücksichtigen.
Vereinfachte Netzwerkverwaltung: Sie können verhindern, dass übermäßig viele Pod-Netzwerke erstellt werden, und die Kommunikation mithilfe von Netzwerkrichtlinien genau steuern, um eine einfachere Netzwerkverwaltung und geringere Komplexität zu erzielen.
Kostenoptimierung: Wenn Sie keine zahlreiche Pod-Netzwerke erstellen müssen, können Sie die Ressourcennutzung optimieren und die mit der Netzwerkinfrastruktur verbundenen Kosten senken.
Erweiterter Schutz für CNFs: Sie können die Sicherheit und Integrität von CNF-Bereitstellungen gewährleisten, indem Sie den Traffic der Verwaltung und der Datenebene isolieren und auf jede Bereitstellung spezifische Netzwerkrichtlinien anwenden.
Nächste Schritte
Trafficfluss zwischen Pods und Services auf Pod-Ebene steuern