Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Einrichten der Infrastruktur für einen RKE Kubernetes-Cluster mit hoher Verfügbarkeit

Rancher Kubernetes Engine (RKE/RKE1) will reach end of life on July 31, 2025. Rancher 2.12.0 and later will no longer support provisioning or managing downstream RKE1 clusters. We recommend replatforming RKE1 clusters to RKE2 to ensure continued support and security updates. Learn more about the transition here.

Dieses Tutorial soll Ihnen helfen, einen RKE-Cluster mit hoher Verfügbarkeit zu erstellen, der zur Installation eines Rancher-Servers verwendet werden kann.

Wichtig:

Diese Knoten müssen sich in derselben Region befinden. Sie können diese Server in separaten Verfügbarkeitszonen (Rechenzentren) platzieren.

Um den Rancher-Management-Server auf einem RKE-Cluster mit hoher Verfügbarkeit zu installieren, empfehlen wir, die folgende Infrastruktur einzurichten:

  • Drei Linux-Knoten, typischerweise virtuelle Maschinen, bei einem Infrastruktur-Anbieter wie Amazons EC2, Google Compute Engine oder vSphere.

  • Ein Lastausgleich, um den Frontend-Traffic zu den drei Knoten zu leiten.

  • Ein DNS-Eintrag, um eine URL dem Load Balancer zuzuordnen. Dies wird die Rancher-Server-URL, und Downstream-Kubernetes-Cluster müssen darauf zugreifen können.

Diese Knoten müssen sich in derselben Region/dem selben Rechenzentrum befinden. Sie können diese Server in separaten Verfügbarkeitszonen platzieren.

Warum drei Knoten?

In einem RKE-Cluster werden die Rancher-Serverdaten in etcd gespeichert. Diese etcd-Datenbank läuft auf allen drei Knoten.

Die etcd-Datenbank erfordert eine ungerade Anzahl von Knoten, damit sie immer einen Leader mit einer Mehrheit des etcd-Clusters wählen kann. Wenn die etcd-Datenbank keinen Leader wählen kann, kann etcd unter Split Brain leiden, was erfordert, dass der Cluster aus einer Sicherung wiederhergestellt wird. Wenn einer der drei etcd-Knoten ausfällt, können die beiden verbleibenden Knoten einen Leader wählen, da sie die Mehrheit der insgesamt vorhandenen etcd-Knoten haben.

1. Linux-Knoten einrichten

Stellen Sie sicher, dass Ihre Knoten die allgemeinen Installationsanforderungen für Betriebssystem, Container-Laufzeit, Hardware und Netzwerk erfüllen.

Für ein Beispiel, wie man Linux-Knoten einrichtet, beziehen Sie sich auf dieses Tutorial zur Einrichtung von Knoten als Instanzen in Amazon EC2.

2. Richten Sie den Lastausgleich ein

Sie müssen auch einen Lastausgleich einrichten, um den Datenverkehr an die Rancher-Replik auf einem der drei Knoten zu leiten. Das wird verhindern, dass ein Ausfall eines einzelnen Knotens die Kommunikation mit dem Rancher-Managementserver unterbricht.

Wenn Kubernetes in einem späteren Schritt eingerichtet wird, wird das RKE-Tool einen NGINX Ingress-Controller bereitstellen. Dieser Controller wird an den Ports 80 und 443 der Arbeitsknoten überwachen und den Datenverkehr beantworten, der für bestimmte Hostnamen bestimmt ist.

Wenn Rancher installiert ist (auch in einem späteren Schritt), erstellt das Rancher-System eine Ingress-Ressource. Dieses Ingress weist den NGINX Ingress-Controller an, den Datenverkehr zu überwachen, der für den Rancher-Hostnamen bestimmt ist. Der NGINX Ingress-Controller wird, wenn er Datenverkehr für den Rancher-Hostnamen erhält, diesen Datenverkehr an die laufenden Rancher-Pods im Cluster weiterleiten.

Für Ihre Implementierung sollten Sie überlegen, ob Sie einen Layer-4- oder Layer-7-Load Balancer verwenden möchten oder müssen:

  • Ein Layer-4-Lastausgleich ist die einfachere der beiden Optionen, bei der Sie TCP-Datenverkehr an Ihre Knoten weiterleiten. Wir empfehlen, Ihren Layer-4-Lastausgleich so zu konfigurieren, dass er den Datenverkehr an die Ports TCP/80 und TCP/443 der Rancher-Management-Clusterknoten weiterleitet. Der Ingress-Controller im Cluster wird den HTTP-Datenverkehr auf HTTPS umleiten und SSL/TLS an Port TCP/443 terminieren. Der Ingress-Controller wird den Datenverkehr an Port TCP/80 an das Ingress-Pod in der Rancher-Implementierung weiterleiten.

  • Ein Layer-7-Lastausgleich ist etwas komplizierter, kann jedoch Funktionen bieten, die Sie möglicherweise wünschen. Ein Layer-7-Lastausgleich kann beispielsweise die TLS-Terminierung am Lastausgleich übernehmen, anstatt dass Rancher die TLS-Terminierung selbst vornimmt. Dies kann vorteilhaft sein, wenn Sie Ihre TLS-Beendigung in Ihrer Infrastruktur zentralisieren möchten. Layer-7-Load Balancing bietet auch die Möglichkeit, dass Ihr Load Balancer Entscheidungen basierend auf HTTP-Attributen wie Cookies usw. trifft, mit denen sich ein Layer-4-Load Balancer nicht befassen kann. Wenn Sie sich entscheiden, den SSL/TLS-Datenverkehr an einem Layer-7-Lastausgleich zu terminieren, müssen Sie die --set tls=external Option verwenden, wenn Sie Rancher in einem späteren Schritt installieren. Für weitere Informationen siehe die Rancher Helm-Chart-Optionen.

Für ein Beispiel, wie man einen NGINX-Lastausgleich einrichtet, siehe diese Seite.

Für eine Anleitung zur Einrichtung eines Amazon ELB Network-Lastausgleichs, verweisen Sie auf diese Seite.

Verwenden Sie diesen Lastausgleich (d.h. den local Cluster Ingress) nicht, um Anwendungen außer Rancher nach der Installation zu verteilen. Das Teilen dieses Ingress mit anderen Anwendungen kann zu Websocket-Fehlern bei Rancher nach dem Neuladen der Ingress-Konfiguration für andere Apps führen. Wir empfehlen, den local Cluster ausschließlich für Rancher und keine anderen Anwendungen zu verwenden.

3. DNS-Eintrag einrichten

Nachdem Sie Ihren Load Balancer eingerichtet haben, müssen Sie einen DNS-Eintrag erstellen, um den Datenverkehr an diesen Load Balancer zu senden.

Je nach Ihrer Umgebung kann dies ein A-Eintrag sein, der auf die LB-IP zeigt, oder es kann ein CNAME sein, der auf den Hostnamen des Load Balancers zeigt. In jedem Fall stellen Sie sicher, dass dieser Eintrag der Hostname ist, auf den Rancher reagieren soll.

Sie müssen diesen Hostnamen in einem späteren Schritt angeben, wenn Sie Rancher installieren, und es ist nicht möglich, ihn später zu ändern. Stellen Sie sicher, dass Ihre Entscheidung endgültig ist.

Für eine Anleitung zur Einrichtung eines DNS-Eintrags, um den Domain-Traffic an einen Amazon ELB-Lastausgleich weiterzuleiten, siehe die offizielle AWS-Dokumentation.