Manuellen Load-Balancing-Modus aktivieren

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 Administratorcluster

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

  • Einen nodePort-Wert für HTTP-Traffic zum Ingress-Dienst im Admin-Cluster

  • Einen nodePort-Wert für HTTPS-Traffic zum Ingress-Dienst im Admin-Cluster

  • 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

  • Einen nodePort-Wert für den Add-on-Dienst im Administratorcluster

  • Fü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 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.

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 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.