GKE On-Prem-Cluster können mit einem der beiden Load-Balancing-Modi ("Integriert" oder "Manuell") ausgeführt werden. Beim integrierten Modus werden GKE On-Prem-Cluster mit dem F5 BIG-IP-Load-Balancer ausgeführt. Beim manuellen Modus konfigurieren Sie manuell einen anderen Load-Balancer. Sie können beispielsweise den Citrix-Load-Balancer oder den Seesaw-Load-Balancer manuell konfigurieren.
Der manuelle Load-Balancing-Modus erfordert mehr Konfiguration als der integrierte Modus. Auf dieser Seite werden die Schritte beschrieben, die Sie für den manuellen Modus ausführen müssen.
Beschränkungen
Die Verwendung des manuellen Load-Balancers unterliegt den folgenden Einschränkungen:
Mit DHCP können Sie Clusterknoten keine IP-Adressen zuweisen. Sie müssen statische Knoten-IP-Adressen zuweisen.
Dienste vom Typ
LoadBalancer
können nicht für Clients außerhalb des Clusters freigegeben werden. Sie können jedoch Dienste vom TypNodePort
erstellen und Ihren Load-Balancer manuell so konfigurieren, dass sie als Back-Ends verwendet werden. Sie können Ihre Dienste auch mithilfe vonIngress
-Objekten verfügbar machen.Wenn Sie Clusterknoten hinzufügen oder löschen, müssen Sie den Load-Balancer entsprechend manuell konfigurieren.
Unterstützung für manuelles Load-Balancing erhalten
Google bietet keinen Support für Load-Balancing, das im manuellen Modus des Load-Balancing konfiguriert wurde. Wenn Probleme mit dem Load-Balancer auftreten, wenden Sie sich an den Anbieter des Load-Balancing-Moduls.
IP-Adressen reservieren
Jeder von Ihnen erstellte Cluster hat drei oder mehr VMs, die Knoten genannt werden. Reservieren Sie eine IP-Adresse für jeden Knoten in den Clustern, die Sie erstellen möchten. Wenn Sie beispielsweise einen Administratorcluster mit vier Knoten und einen Nutzercluster mit drei Knoten erstellen möchten, sollten Sie sieben IP-Adressen für Knoten reservieren. Konfigurieren Sie Ihre Router so, dass alle Knoten-IP-Adressen routingfähig sind.
Außerdem müssen Sie die folgenden VIPs für das Load-Balancing reservieren:
- VIP für die Administrator-Steuerungsebene (freigegebene Ports: TCP 443)
- VIP für den Ingress-Controller des Administratorclusters (freigegebene Ports: TCP 80, TCP 443)
- VIP für den Add-on-Manager (freigegebene Ports: TCP 8443)
- VIP für die Nutzer-Steuerungsebene (freigegebene Ports: TCP 443)
- VIP für den Ingress-Controller des Nutzerclusters (freigegebene Ports: TCP 80, TCP 443)
Knotenports reservieren
GKE On-Prem verwendet Kubernetes-Dienstobjekte vom Typ NodePort
, um Traffic an Pods weiterzuleiten.
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 Dienst stellt den Ingress-Controller für Ihren Nutzercluster dar. Außerdem angenommen, Sie haben Folgendes ausgewählt:
203.0.113.5
ist der VIP für den Ingress-Controller 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.
Sie müssen keine Dienstobjekte für Ihre VIPs erstellen. GKE On-Prem erledigt das für Sie. Allerdings müssen Sie für jedes (VIP, TCP-Port)-Paar Folgendes auswählen und angeben:
- Eine Reihe von Knoten-IP-Adressen
- Einen
nodePort
-Wert
Sie müssen sieben nodePort
-Werte reservieren:
nodePort
für die Steuerungsebene des Administratorclusters, TCP-Port 443nodePort
für den Ingress-Controller des Admin-Clusters, TCP-Port 80nodePort
für den Ingress-Controller des Admin-Clusters, TCP-Port 443nodePort
für den Add-on-Manager, TCP-Port 8443nodePort
für die Nutzer-Steuerungsebene, TCP-Port 80nodePort
für den Ingress-Controller des Nutzerclusters, TCP-Port 80nodePort
für den Ingress-Controller des Nutzerclusters, TCP-Port 443
GKE On-Prem-Konfigurationsdatei ändern
Wenn Sie GKE On-Prem installieren, generieren Sie eine Konfigurationsdatei. Sie müssen die folgenden Abschnitte in Ihrer Konfigurationsdatei ändern:
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.
Prüfen Sie zuerst, ob Ihr Administratorcluster und Ihr Nutzercluster unterschiedliche IP-Adresspools haben.
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
- Nutzer-Cluster-Ingress-Controller, TCP-Port 443
Weitere Informationen
Problembehebung
Weitere Informationen finden Sie unter Fehlerbehebung.