Manuellen Load-Balancing-Modus aktivieren

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 Administratorcluster

  • Für jeden der beiden Nutzercluster einen nodePort-Wert für den Kubernetes-API-Server

  • Für jeden der beiden Nutzercluster einen nodePort-Wert für HTTP-Traffic zum Dienst für eingehenden Traffic

  • Für jeden der beiden Nutzercluster einen nodePort-Wert für HTTPS-Traffic zum Dienst für eingehenden Traffic

  • Ein 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 auf ManualLB.

  • Setzen Sie network.ipMode auf static.

  • 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 den nodePort-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 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.

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.