Auf dieser Seite erhalten Sie eine allgemeine Übersicht über die Erstellung und Verwaltung von Cloud Load Balancing in Google Kubernetes Engine (GKE). Auf dieser Seite wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:
- Arten von Trusted Cloud by S3NS Load Balancern
- Der Unterschied zwischen Load Balancern der Schicht 4 (Network Load Balancer) und der Schicht 7 (Application Load Balancer)
Diese Seite richtet sich an Cloud-Architekten und Netzwerkspezialisten, die das Netzwerk für ihre Organisation entwerfen und erstellen. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Trusted Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE Enterprise-Nutzerrollen und -Aufgaben.
So werden Load Balancer in GKE erstellt
Wenn Sie Ihre Anwendungen entweder von außerhalb des Clusters (externe Nutzer) oder innerhalb Ihres privaten Netzwerks (interne Nutzer) zugänglich machen möchten, können Sie Ihre Anwendungen bereitstellen, indem Sie Load Balancer mit den Gateway-, Ingress- und Service-APIs bereitstellen. Alternativ können Sie die Load Balancer-Komponenten selbst erstellen, während GKE die Netzwerk-Endpunktgruppen (NEGs) verwaltet, die Ihren Load Balancer mit den Pods in Ihrem Cluster verbinden.
Gateway
Der GKE Gateway Controller ist die Google-Implementierung der Kubernetes Gateway API für Cloud Load Balancing. Die Gateway API ist ein Open-Source-Projekt, das darauf abzielt, die Art und Weise zu standardisieren, wie Service Meshs und Ingress-Controller Anwendungen in Kubernetes verfügbar machen. Es ist als ausdrucksstärkerer, flexiblerer und erweiterbarer Nachfolger der Ingress-Ressource konzipiert.
Der GKE Gateway-Controller wird verwendet, um Layer 7-Application Load Balancer zu konfigurieren, um HTTP(S)-Traffic für Anwendungen bereitzustellen, die im Cluster ausgeführt werden.
Verwenden Sie die Gateway API, um Ihren Load-Balancer zu implementieren.
Eingehender Traffic
Der GKE-Ingress-Controller ist die Google-Implementierung der Ingress API. Mit der Ingress API können Sie den externen Zugriff auf Dienste verwalten, die in einem Cluster ausgeführt werden. Wenn Sie eine Ingress-Ressource in GKE erstellen, konfiguriert der Controller automatisch einen Application Load Balancer der Schicht 7, über den HTTP- oder HTTP(S)-Traffic Ihre Anwendungen im Cluster erreichen kann.
GKE Gateway ist die empfohlene Option für neue Bereitstellungen und Anwendungen, die eine erweiterte Trafficverwaltung, Unterstützung mehrerer Protokolle oder eine bessere Mehrmandantenfähigkeit erfordern. GKE Ingress ist jedoch eine gute Option für einfachere HTTP/HTTPS-Routing-Szenarien, insbesondere für vorhandene Konfigurationen, bei denen die Vorteile der Migration zur Gateway API den Aufwand möglicherweise noch nicht überwiegen.
LoadBalancer-Dienste
Mit der Service API können Sie Anwendungen, die als Pods in Ihrem Cluster ausgeführt werden, für externen oder internen Traffic freigeben. Wenn Sie einen Dienst vom Typ LoadBalancer
erstellen, erstellt GKE automatisch einen Passthrough-Network Load Balancer der Schicht 4 (TCP/UDP) basierend auf den Parametern Ihres Dienstmanifests.
Bei Passthrough-Netzwerk-Load-Balancern bleiben die ursprünglichen Quell- und Ziel-IP-Adressen, das Kommunikationsprotokoll (z. B. TCP oder UDP) und die Portnummern (falls das Protokoll sie verwendet) unverändert, wenn der Traffic Ihre Back-End-VMs erreicht. Das bedeutet, dass der Traffic direkt an die Backend-VMs oder -Pods weitergeleitet wird und der Load-Balancer die Verbindungen nicht beendet. Die Backend-Dienste übernehmen die Beendigung von Verbindungen und sorgen dafür, dass der Traffic nahtlos vom Client zum Dienst fließt.
Gewichtetes Load Balancing
Wenn Sie einen externen LoadBalancer-Dienst konfiguriert haben, auf den Clients außerhalb Ihres VPC-Netzwerk und Trusted Cloud VMs zugreifen können, können Sie gewichtetem Load-Balancing aktivieren. Beim gewichteten Load-Balancing wird der Traffic basierend auf der Anzahl der Bereitstellungs-Pods auf jedem GKE-Knoten verteilt. Knoten mit mehr Bereitstellungs-Pods erhalten also einen größeren Anteil des Traffics als Knoten mit weniger Pods.
Eigenständige NEGs
Eine weitere Methode zum Verwalten von Load-Balancern in GKE besteht darin, die Load-Balancer-Komponenten selbst zu erstellen und die NEGs von GKE verwalten zu lassen. Diese Art von Load Balancer wird als Proxy-Network Load Balancer bezeichnet. NEGs sind eine Möglichkeit, Gruppen von Backend-Endpunkten (z. B. Pods) für den Lastenausgleich darzustellen.
Diese Art von Load Balancer ist nur für TCP-Traffic vorgesehen. Proxy-Netzwerk-Load-Balancer verteilen TCP-Traffic auf Back-Ends in Ihrem VPC-Netzwerk oder in anderen Cloud-Umgebungen. Der Traffic wird auf der Load-Balancing-Ebene beendet. Der Load-Balancer leitet den Traffic dann weiter, indem er neue TCP-Verbindungen zum nächstgelegenen verfügbaren Backend herstellt.
Was ist containernatives Load-Balancing?
Containernatives Load-Balancing bezeichnet das gleichmäßige Verteilen von Traffic direkt an die IP-Adressen einzelner Pods (und nicht an Knoten) mithilfe von GCE_VM_IP_PORT
-NEGs. Mit GCE_VM_IP_PORT
-NEGs können Sie Back-End-Endpunkte entweder mit der primären internen IP-Adresse einer Compute Engine-VM oder mit einer IP-Adresse aus einem der konfigurierten Alias-IP-Bereiche der VM angeben.
Das containernative Load-Balancing wird für alle von GKE verwalteten Layer-7-Load-Balancer verwendet, einschließlich Gateway und Ingress sowie eigenständiger NEGs. LoadBalancer-Dienste verwenden kein containernatives Load-Balancing. Sie können jedoch eine ähnliche Funktion erreichen, indem Sie das gewichtete Load Balancing aktivieren.
Das containernative Load-Balancing bietet mehrere Vorteile, darunter eine verbesserte Netzwerkleistung und verbesserte Systemdiagnosen, da Pods direkt angesteuert werden. Weitere Informationen finden Sie unter Containernatives Load-Balancing.
Übersichtstabellen
Die folgenden Tabellen können Ihnen bei der Planung Ihrer Load-Balancing-Konfiguration helfen.
Load-Balancer-Typ auswählen
In der folgenden Tabelle sehen Sie, welcher Load-Balancer-Typ für eine bestimmte Ressource (Gateway, Ingress oder LoadBalancer-Dienst) erstellt wird:
Kubernetes-Ressource | Typ des erstellten Load-Balancers | |
---|---|---|
Application Load Balancer | Netzwerk Load Balancer (Passthrough) | |
Gateway | ||
Eingehender Traffic | ||
LoadBalancer-Dienst |
Methode zum Erstellen eines Load-Balancers auswählen
In der folgenden Tabelle sehen Sie die Optionen in GKE zum Erstellen des ausgewählten Load Balancers:
Load-Balancer-Typ | Methoden zum Erstellen des ausgewählten Load Balancers | |||
---|---|---|---|---|
Gateway | Eingehender Traffic | LoadBalancer-Dienst | Eigenständige NEGs | |
Globaler externer Application Load Balancer | ||||
Klassischer externer Application Load Balancer | ||||
Regionaler externer Application Load Balancer | ||||
Regionaler interner Application Load Balancer | ||||
Regionsübergreifender interner Application Load Balancer | ||||
Proxy-Network Load Balancer
(alle Typen) |
||||
Passthrough Network Load Balancer
(intern und extern) |