Auf dieser Seite erfahren Sie, wie Sie die am besten geeignete API für die Bereitstellung von Load Balancern auswählen, um den Traffic auf eine Reihe von Google Kubernetes Engine-Clustern (GKE) zu verteilen.
So können Sie einen Load Balancer an Ihre Flotte von GKE-Clustern anhängen:
Verwenden Sie die Multi-Cluster-Ingress-APIs wie die Multi-Cluster-Ingress- und MultiClusterService-Ressourcen.
Verwenden Sie die Gateway-APIs (GatewayClass-, Gateway-, HTTPRoute-, Policy-, ServiceExport- und ServiceImport-Ressourcen).
Richten Sie den Application Load Balancer mit der Google Cloud Console, der gcloud CLI, der API, Terraform oder Config Connector ein und hängen Sie eigenständige NEGs an die vom Nutzer verwalteten Backend-Dienste an.
In der folgenden Tabelle sind die verschiedenen Möglichkeiten aufgeführt, wie Sie einen Load Balancer an Ihre Flotte von GKE-Clustern anhängen können. Alle Features, die auf der Seite Load-Balancer-Funktionsvergleich und nicht in der folgenden Tabelle aufgeführt sind, sollten mit einem vom Nutzer verwalteten Load Balancer mit eigenständigen NEGs funktionieren und keine Kubernetes-native API für das Load Balancing erfordern.
Lösung | Multi-Cluster-Ingress | Multi-Cluster-Gateway | Vom Nutzer verwalteter Load Balancer mit eigenständigen NEGs |
---|---|---|---|
Unterstützung für GKE-Plattformen | |||
Phase der Produkteinführung | GA | GA | GA |
GKE-Editionen | Enterprise/Standard | Enterprise/Standard | Enterprise/Standard |
Clustermodus | Standard/Autopilot | Standard/Autopilot | Standard/Autopilot |
GKE-Version | 1.18 und höher | GKE 1.24 und höher für Standard und 1.26 und höher für Autopilot | 1.18 und höher |
Architektur und Komponenten | |||
Von Google verwalteter Kubernetes-Controller | |||
Controller | GKE Multi-Cluster-Ingress Controller | GKE Gateway Controller | - |
Standort des Controllers | Außerhalb des Clusters
(Google Cloud-Infrastruktur) |
Außerhalb des Clusters
(Google Cloud-Infrastruktur) |
- |
API | Kubernetes-native API | Kubernetes-native API | Google Cloud API (gcloud CLI) |
API-Ressourcen | MultiClusterIngress, MultiClusterService | GatewayClass, Gateway, HTTPRoute, *Policy | - |
Phasen der API-Einführung | GA (v1) | GA (v1) | - |
API-Aktivierung in GKE | Clustereinstellung in Autopilot/Standard | Standardeinstellung in Autopilot
Clustereinstellung in Standard |
- |
Unterstützung für Multi-Cluster-Dienste | |||
Multi-Cluster-Dienste (MCS) erforderlich | |||
MCS-API-Version | networking.gke.io/v1 | net.gke.io/v1 | - |
Ressourcentyp | MultiClusterService | ServiceExport | - |
Lizenz | Proprietär | Open Source | - |
Verwaltung des Lebenszyklus von Cloud-Netzwerkressourcen (mit Ausnahme von freigegebener VPC) | |||
Automatisierte Verwaltung der Frontend-IP-Adresse | |||
Automatisierte Verwaltung von Cloud-Load-Balancern
|
|||
Verwaltung automatisierter Netzwerk-Endpunktgruppen (NEGs) |
(nur zonale NEGs) |
(nur zonale NEGs) |
(nur zonale NEGs, Annotation für den Kubernetes-Service erforderlich) |
Cloud NGFW-Verwaltung | |||
Unterstützung für freigegebene VPC | |||
Cluster und Flotte (Hub) im Hostprojekt | |||
Cluster und Flotte im selben Dienstprojekt |
(mit Berechtigungen für Firewallregeln im Hostprojekt) |
||
Cluster und Flotte (Hub) in verschiedenen Projekten | |||
Load-Balancer-Unterstützung | |||
Application Load Balancer | |||
Klassisch | |||
Global, extern | |||
Regional, extern | |||
Regional intern | |||
Regionenübergreifend, intern | |||
Proxy-Network-Load-Balancer | |||
Klassisch | |||
Global, extern | |||
Regional, extern | |||
Intern (immer regional) | |||
Passthrough-Network-Load-Balancer | |||
Extern (immer regional) | |||
Intern (immer regional) | |||
Unterstützung von Client-zu-Load-Balancer-Protokollen | |||
HTTP, HTTPS, HTTP/2 | |||
WebSocket | |||
HTTP/3 (basierend auf IETF QUIC) | |||
SSL (TLS) oder TCP | |||
Unterstützung für Load-Balancer-Back-Ends | |||
Pods (zonale NEGs) | |||
Virtuelle Maschinen (einschließlich GKE-Knoten) | |||
Andere Back-Ends:
|
|||
Unterstützung von Load-Balancer-zu-Back-Ends-Protokollen | |||
HTTP, HTTPS, HTTP/2 (eines davon) | |||
WebSocket | |||
SSL (TLS) oder TCP (eines davon) | |||
IP-Adressierung und Protokolle | |||
Dynamische IP-Adresszuweisung | |||
Statische IP-Adresszuweisung | |||
Gleiche IP-Adresse für mehrere Ports (HTTP, HTTPS) | |||
IPv6 |
(Load-Balancer-zu-Backend-Traffic bleibt IPv4) |
(Load-Balancer-zu-Backend-Traffic bleibt IPv4) |
(Load-Balancer-zu-Backend-Traffic bleibt IPv4) |
Routing und Trafficverwaltung | |||
Globaler Zugriff | |||
Projektübergreifendes Load-Balancing | |||
Host-/Pfad-Routing |
(Präfix, genaue Übereinstimmung) |
(Präfix, genaue Übereinstimmung) |
|
Header-basiertes Routing |
(genaue Übereinstimmung) |
||
Pfadweiterleitungen | |||
URL-Umschreibungen | |||
Trafficaufteilung | |||
Traffic-Spiegelung | |||
Trafficumstellung | |||
Traffic-basiertes Autoscaling | |||
Benutzerdefinierte Anfrageheader | |||
Benutzerdefinierte Antwortheader | |||
Namespace-übergreifendes Routing | |||
Frontend-Sicherheit | |||
SSL-Richtlinie | |||
HTTP-zu-HTTPS-Weiterleitung | |||
Unterstützung mehrerer TLS-Zertifikate | |||
Auf Secrets beruhende Kubernetes-Zertifikate | |||
Selbstverwaltete SSL-Zertifikate | |||
Von Google verwaltete SSL-Zertifikate | |||
Unterstützung von Certificate Manager | |||
Backend-Diensteigenschaften | |||
Zeitlimit für Verbindungsausgleich | |||
Sitzungsaffinität | |||
Konfiguration des HTTP-Zugriffs-Loggings | |||
Zeitlimit für Backend-Dienst | |||
Benutzerdefinierte Konfiguration von Systemdiagnosen für Load Balancer | |||
TLS-zu-Backend-Dienste | |||
Benutzerdefiniertes Standard-Backend | |||
Cloud CDN |
(nicht alle Features) |
(alle Features) |
|
Identity-Aware Proxy (IAP) | |||
Google Cloud Armor-Sicherheitsrichtlinie |
Nächste Schritte
- Multi-Cluster-Ingress einrichten
- Ingress clusterübergreifend bereitstellen
- Multi-Cluster-Gateway aktivieren
- Multi-Cluster-Gateways bereitstellen
- Containernatives Load Balancing über eigenständige zonale NEGs