GKE On-Prem-Cluster können in einem von zwei Load-Balancing-Modi ausgeführt werden: integriert oder manuell. Beim integrierten Modus werden GKE On-Prem-Cluster mit dem F5 BIG-IP-Load-Balancer ausgeführt. Beim manuellen Modus können Sie den F5 BIG-IP-Load-Balancer oder einen beliebigen anderen Load-Balancer verwenden. Der manuelle Load-Balancing-Modus erfordert mehr Konfiguration als der integrierte Modus. Auf dieser Seite werden die Schritte beschrieben, die Sie ausführen müssen, wenn Sie den manuellen Load-Balancing-Modus verwenden.
Der Citrix-Load-Balancer und der Seesaw-Load-Balancer sind Beispiele für Load-Balancer, die Sie mit dem 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. Die Adressen und nodePort
-Werte verwenden Sie jedoch an dieser Stelle nicht. 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 den integrierten oder manuellen Load-Balancing-Modus verwenden, müssen Sie mehrere virtuelle IP-Adressen (VIPs) reservieren, die Sie für das Load-Balancing verwenden möchten. 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 Ingress-Dienst und der Add-on-Dienst als Kubernetes-Dienste 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, die 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.Reservieren Sie für jede VIP, die Sie für einen Cluster-Add-on-Dienst reserviert haben, einen
nodePort
-Wert.
Angenommen, Sie möchten zwei Nutzercluster haben und in allen Clustern Add-ons verwenden. Sie müssen dann die folgenden nodePort
-Werte auswählen und reservieren:
Einen
nodePort
-Wert für den Kubernetes-API-Server im AdministratorclusterFür jeden der beiden Nutzercluster einen
nodePort
-Wert für den Kubernetes-API-ServerEinen
nodePort
-Wert für HTTP-Traffic zum Ingress-Dienst im Admin-ClusterEinen
nodePort
-Wert für HTTPS-Traffic zum Ingress-Dienst im Admin-ClusterFü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 TrafficEinen
nodePort
-Wert für den Add-on-Dienst im AdministratorclusterFür jeden der zwei Nutzercluster einen
nodePort
-Wert für den Add-on-Dienst
In diesem Beispiel müssten Sie also 10 nodePort
-Werte reservieren.
GKE On-Prem-Konfigurationsdatei ändern
Wenn Sie GKE On-Prem installieren, generieren Sie eine Konfigurationsdatei. Nehmen Sie für den manuellen Load-Balancing-Modus die folgenden Änderungen an Ihrer Konfigurationsdatei vor:
Setzen Sie
lbmode
aufManual
.Setzen Sie
admincluster.ipblockfilepath
auf den Pfad der statischen IP-YAML-Datei für Ihren Administratorcluster. Dies wird unter Statische IP-Adressen konfigurieren dokumentiert. DHCP ist keine Option für den ModusManual
.Setzen Sie
usercluster.ipblockfilepath
auf den Pfad der statischen IP-YAML-Datei für Ihren Nutzercluster.Aktualisieren Sie das Feld
admincluster.manuallbspec
mit dennodePort
-Werten, die Sie für Ihren Administratorcluster ausgewählt haben.Aktualisieren Sie den Abschnitt
usercluster.manuallbspec
mit dennodePort
-Werten, die Sie für Ihren Nutzercluster ausgewählt haben.
Das folgende Beispiel zeigt einen Teil einer aktualisierten Konfigurationsdatei:
... lbmode: Manual ... admincluster: ipblockfilepath: "ipblock1.yaml" manuallbspec: ingresshttpnodeport: 32527 ingresshttpsnodeport: 30139 controlplanenodeport: 30968 addonsnodeport: 31405 ... usercluster: ipblockfilepath: "env/default/ipblock2.yaml" manuallbspec: ingresshttpnodeport: 30243 ingresshttpsnodeport: 30879 controlplanenodeport: 30562
Load-Balancer konfigurieren
Nachdem Sie die Konfigurationsdatei aktualisiert haben, melden Sie sich in der Verwaltungskonsole Ihres Load-Balancers an und konfigurieren Sie Ihre VIPs.
Wie bereits erwähnt, müssen Sie fünf VIPs und sieben Ports konfigurieren. Sie erstellen auf Ihrem Load-Balancer also sieben virtuelle Dienste:
- Steuerungsebene des Administratorclusters, TCP-Port 443
- Administratorcluster-Controller für eingehenden Traffic, TCP-Port 80
- Administratorcluster-Controller für eingehenden Traffic, TCP-Port 443
- Add-on-Manager, TCP-Port 8443
- Nutzersteuerungsebene, TCP-Port 80
- Nutzercluster-Controller für eingehenden Traffic, 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
Problembehebung
Weitere Informationen finden Sie unter Fehlerbehebung.