Manuellen Load-Balancing-Modus aktivieren

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 Typ NodePort erstellen und Ihren Load-Balancer manuell so konfigurieren, dass sie als Back-Ends verwendet werden. Sie können Ihre Dienste auch mithilfe von Ingress-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 und 192.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 Knotenadresse 192.168.0.11 ist. Der Load-Balancer leitet die Anfrage über TCP-Port 32676 an 192.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 Knotenadresse 192.168.0.10 ist. Der Load-Balancer leitet die Anfrage über TCP-Port 32677 an 192.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 443
  • nodePort für den Ingress-Controller des Admin-Clusters, TCP-Port 80
  • nodePort für den Ingress-Controller des Admin-Clusters, TCP-Port 443
  • nodePort für den Add-on-Manager, TCP-Port 8443
  • nodePort für die Nutzer-Steuerungsebene, TCP-Port 80
  • nodePort für den Ingress-Controller des Nutzerclusters, TCP-Port 80
  • nodePort 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 auf Manual.

  • 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 Modus Manual.

  • Setzen Sie usercluster: ipblockfilepath auf den Pfad der statischen IP-YAML-Datei für Ihren Nutzercluster.

  • Aktualisieren Sie das Feld admincluster:manuallbspec mit den nodePort-Werten, die Sie für Ihren Administratorcluster ausgewählt haben.

  • Aktualisieren Sie den Abschnitt usercluster:manuallbspec mit den nodePort-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.