Lokale GKE-Cluster können mit einem von drei Load-Balancing-Modi ausgeführt werden: integriert, gebündelt oder manuell. Im integrierten Modus verwendet ein GKE On-Prem-Cluster den F5 BIG-IP-Load-Balancer. Im gebündelten Modus stellt GKE On-Prem den Load-Balancer bereit und verwaltet ihn. Sie benötigen keine Lizenz für einen Load-Balancer und die Einrichtung ist überhaupt nicht aufwändig. Im manuellen Modus verwendet GKE On-Prem einen anderen Load-Balancer Ihrer Wahl. Der manuelle Load-Balancing-Modus erfordert mehr Konfiguration als der integrierte Modus. Auf dieser Seite werden die Schritte erläutert, die Sie ausführen müssen, wenn Sie den manuellen Load-Balancing-Modus verwenden.
Der Citrix-Load-Balancer ist ein beispielhafter Load-Balancer, den Sie im manuellen Load-Balancing-Modus verwenden können.
In diesem Thema reservieren Sie IP-Adressen und nodePort
-Werte für die spätere Verwendung.
Sie wählen die IP-Adressen und nodePort
-Werte aus, die Sie für das Load-Balancing und für Ihre Clusterknoten verwenden möchten. An dieser Stelle machen Sie mit den Adressen und nodePort
-Werten jedoch noch nichts. Später, wenn Sie bereit sind, GKE On-Prem zu installieren, benötigen Sie die Adressen und nodePort
-Werte, um die Clusterkonfigurationsdatei zu befüllen. Sie benötigen die Adressen und nodePort
-Werte auch, wenn Sie den Load-Balancer manuell konfigurieren.
Virtuelle IP-Adressen reservieren
Unabhängig davon, ob Sie integriertes, gebündeltes oder manuelles Load-Balancing nutzen, müssen Sie mehrere virtuelle IP-Adressen (VIPs) für das Load-Balancing reservieren. Mit diesen VIPs können externe Clients Ihre Kubernetes API-Server, Ihre Dienste für eingehenden Traffic und Ihre Add-on-Dienste erreichen. Eine ausführliche Anleitung zum Reservieren von VIPs finden Sie unter Virtuelle IP-Adressen reservieren.
Knoten-IP-Adressen reservieren
Beim manuellen Load-Balancing-Modus können Sie kein DHCP verwenden. Sie müssen für Ihre Clusterknoten statische IP-Adressen reservieren. Sie müssen genügend Adressen für die Knoten im Administratorcluster und die Knoten in allen Nutzerclustern reservieren, die Sie erstellen möchten. Weitere Informationen dazu, wie viele Knoten-IP-Adressen Sie reservieren müssen, finden Sie unter Statische IP-Adressen konfigurieren.
nodePort
-Werte reservieren
In einem GKE On-Prem-Cluster sind der Kubernetes-API-Server, der Dienst für eingehenden Traffic und der Add-on-Dienst als Kubernetes-Services vom Typ NodePort
implementiert.
Im manuellen Load-Balancing-Modus müssen Sie Ihre eigenen nodePort
-Werte für diese Services auswählen. Wählen Sie Werte im Bereich von 30.000 bis 32.767 aus. Nachdem Sie Ihre nodePort
-Werte ausgewählt haben, können Sie sie für später reservieren, wenn Sie die Clusterkonfigurationsdatei ändern.
Wählen Sie die folgenden nodePort
-Werte aus und reservieren Sie sie für die spätere Verwendung.
Reservieren Sie für jede VIP, die Sie für einen Kubernetes-API-Server reserviert haben, einen
nodePort
-Wert.Reservieren Sie für jede VIP, den Sie für einen Clusterdienst für eingehenden Traffic reserviert haben, zwei
nodePort
-Werte: einen für HTTP-Traffic und einen für HTTPS-Traffic. Dies gilt nur für Nutzercluster.Reservieren Sie für jede VIP, die Sie für einen Cluster-Add-on-Dienst reserviert haben, einen
nodePort
-Wert. Dies gilt nur für Administratorcluster.
Angenommen, Sie möchten zwei Nutzercluster sowie Add-ons verwenden. Sie müssen die folgenden nodePort
-Werte auswählen und freigeben:
Einen
nodePort
-Wert für den Kubernetes-API-Server im AdministratorclusterFür jeden der beiden Nutzercluster einen
nodePort
-Wert für den Kubernetes-API-ServerFür jeden der beiden Nutzercluster einen
nodePort
-Wert für HTTP-Traffic zum Dienst für eingehenden TrafficFür jeden der beiden Nutzercluster einen
nodePort
-Wert für HTTPS-Traffic zum Dienst für eingehenden TrafficEin
nodePort
-Wert für den Add-on-Dienst im Admin-Cluster.
Im vorherigen Beispiel müssten Sie also 8 nodePort
-Werte reservieren.
GKE On-Prem-Konfigurationsdatei ändern
Bereiten Sie für jeden Cluster eine Konfigurationsdatei vor: Administratorcluster und Nutzercluster.
Setzen Sie
loadBalancer.kind
aufManualLB
.Setzen Sie
network.ipMode
aufstatic
.Legen Sie für
network.ipBlockFilePath
den Pfad der statischen IP-YAML-Datei für Ihren Cluster fest. Dies wird unter Statische IP-Adressen konfigurieren dokumentiert. DHCP ist keine verfügbare Option für den manuellen Load-Balancing-Modus.Aktualisieren Sie das Feld
loadBalancer.manualLB
mit dennodePort
-Werten, die Sie für den Cluster ausgewählt haben.
Das folgende Beispiel zeigt einen Teil einer aktualisierten Konfigurationsdatei:
network: ipMode: type: static ipBlockFilePath: "ipblock1.yaml" loadBalancer: kind: ManualLB manualLB: ingressHTTPNodePort: 30243 ingressHTTPSNodePort: 30879 controlPlaneNodePort: 30562: addonsnodeport: 31405
Load-Balancer einrichten
Nachdem Sie die Konfigurationsdatei aktualisiert haben, melden Sie sich bei der Verwaltungskonsole Ihres Load-Balancers an und konfigurieren Sie Ihre VIPs.
- Cluster-Steuerungsebene für Administrator- und Nutzercluster, TCP-Port 443
- Add-on-Manager für den Administratorcluster, falls verwendet, TCP-Port 8443
- Nutzer-Cluster-Ingress-Controller, TCP-Port 80
- Nutzercluster-Controller für eingehenden Traffic, TCP-Port 443
Beispiel für das Load-Balancing
Ein Service hat ein ports
-Feld, das ein Array von ServicePort-Objekten ist. In einem Service vom Typ NodePort
hat jedes ServicePort-Objekt ein protocol
-, ein port
-, ein nodePort
- und ein targetPort
-Element. Das folgende Beispiel zeigt einen Teil eines Manifests für einen Service mit zwei ServicePort-Objekten im ports
-Array:
... kind: Service ... spec: ... type: NodePort ports: - protocol: TCP port: 80 nodePort: 32676 targetPort: 8080 - protocol: TCP port: 443 nodePort: 32677 targetPort: 443 ...
Angenommen, der vorherige Service stellt den Dienst für eingehenden Traffic für einen Ihrer Nutzercluster dar. Außerdem angenommen, Sie haben Folgendes ausgewählt:
203.0.113.5
ist die VIP für den Dienst für eingehenden Traffic Ihres Nutzerclusters.Die Knotenadressen für Ihren Nutzercluster sind
192.168.0.10
,192.168.0.11
und192.168.0.12
.
Nachdem Sie Ihren Load-Balancer konfiguriert haben, wird der Traffic so geleitet:
Ein Client sendet über TCP-Port 80 eine Anfrage an
203.0.113.5
. Der Load-Balancer wählt einen Nutzerclusterknoten aus. In diesem Beispiel nehmen wir an, dass die Knotenadresse192.168.0.11
ist. Der Load-Balancer leitet die Anfrage über TCP-Port 32676 an192.168.0.11
weiter. Die iptables-Regeln auf dem Knoten leiten die Anfrage an einen geeigneten Pod an TCP-Port 8080 weiter.Ein Client sendet über TCP-Port 443 eine Anfrage an
203.0.113.5
. Der Load-Balancer wählt einen Nutzerclusterknoten aus. In diesem Beispiel nehmen wir an, dass die Knotenadresse192.168.0.10
ist. Der Load-Balancer leitet die Anfrage über TCP-Port 32677 an192.168.0.10
weiter. Die iptables-Regeln auf dem Knoten leiten die Anfrage an einen geeigneten Pod an TCP-Port 443 weiter.
Support für das manuelle Load Balancing erhalten
Google bietet keinen Support für Load-Balancer, die mit dem manuellen Load-Balancing-Modus konfiguriert wurden. Wenn Probleme mit dem Load-Balancer auftreten, wenden Sie sich an den Anbieter des Load-Balancers.
Weitere Informationen
- Load-Balancing mit Citrix
- F5 BIG-IP ADC für GKE On-Prem mithilfe des manuellen Load-Balancing installieren
Problembehebung
Weitere Informationen finden Sie unter Fehlerbehebung.