|
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. |
1. Infrastruktur und private Registry einrichten
In diesem Abschnitt werden Sie die zugrunde liegende Infrastruktur für Ihren Rancher-Management-Server in einer Air Gap-Umgebung bereitstellen. Sie werden auch die private Container-Image-Registry einrichten, die für Ihre Rancher-Knoten verfügbar sein muss.
Eine Air Gap-Umgebung ist eine Umgebung, in der der Rancher-Server offline oder hinter einer Firewall installiert ist.
Die Infrastruktur hängt davon ab, ob Sie Rancher auf einem K3s Kubernetes-Cluster, einem RKE Kubernetes-Cluster oder einem einzelnen Docker-Container installieren. Für weitere Informationen zu jeder Installationsoption siehe diese Seite.
Rancher kann auf jedem Kubernetes-Cluster installiert werden. Die untenstehenden Tutorials zur Infrastruktur von RKE und K3s Kubernetes sind weiterhin zur Bequemlichkeit enthalten.
-
K3s
-
RKE
Wir empfehlen, die folgende Infrastruktur für eine Installation mit hoher Verfügbarkeit einzurichten:
-
Zwei Linux-Knoten, typischerweise virtuelle Maschinen, im Infrastrukturanbieter Ihrer Wahl.
-
Eine externe Datenbank zur Speicherung der Cluster-Daten. PostgreSQL, MySQL und etcd werden unterstützt.
-
Ein Load Balancer zur Weiterleitung des Datenverkehrs an die beiden Knoten.
-
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.
-
Eine private Image-Registry, um Container-Images an Ihre Maschinen zu verteilen.
1. Linux-Knoten einrichten
Diese Hosts werden vom Internet getrennt sein, müssen jedoch in der Lage sein, sich mit Ihrer privaten Registry zu verbinden.
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 externen Datenspeicher ein
Die Fähigkeit, Kubernetes mit einem anderen Datenspeicher als etcd auszuführen, hebt K3s von anderen Kubernetes-Distributionen ab. Dieses Feature bietet Flexibilität für Kubernetes-Betreiber. Die verfügbaren Optionen ermöglichen es Ihnen, einen Datenspeicher auszuwählen, der am besten zu Ihrem Anwendungsfall passt.
Für eine K3s-Installation mit hoher Verfügbarkeit müssen Sie eine der folgenden externen Datenbanken einrichten:
-
PostgreSQL (zertifiziert für die Versionen 10.7 und 11.5)
-
MySQL (zertifiziert für Version 5.7)
-
etcd (zertifiziert für Version 3.3.15)
Wenn Sie Kubernetes installieren, geben Sie die Details an, damit K3s eine Verbindung zur Datenbank herstellen kann.
Für ein Beispiel, wie Sie die Datenbank einrichten können, siehe dieses Tutorial zur Einrichtung einer MySQL-Datenbank auf dem RDS-Dienst von Amazon.
Für die vollständige Liste der Optionen, die für die Konfiguration eines K3s-Cluster-Datenspeichers verfügbar sind, siehe die K3s-Dokumentation.
3. Richten Sie den Lastausgleich ein
Sie müssen auch einen Load Balancer einrichten, um den Datenverkehr an die Rancher-Replik auf beiden 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 K3s-Tool einen Traefik 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 Traefik Ingress-Controller an, den Datenverkehr zu überwachen, der für den Rancher-Hostnamen bestimmt ist. Der Traefik 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=externalOption 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-Load Balancer, siehe diese Seite.
|
Wichtig:
Verwenden Sie diesen Load Balancer (d.h. den |
4. 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 IP des Load Balancers 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.
5. Eine private Image-Registry einrichten
Rancher unterstützt Air Gap-Installationen mit einer privaten Registry. Sie müssen über Ihre eigene private Registry oder andere Möglichkeiten zur Verteilung von Container-Images an Ihre Maschinen verfügen.
In einem späteren Schritt, wenn Sie Ihr K3s Kubernetes-Cluster einrichten, erstellen Sie eine Konfigurationsdatei für private Registries mit Details aus dieser Registry.
Wenn Sie eine private Registry erstellen müssen, beachten Sie die Dokumentationsseiten für Ihre jeweilige Laufzeit:
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, in einem Infrastrukturanbieter 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 Lastausgleich zuzuordnen. Dies wird die Rancher-Server-URL, und Downstream-Kubernetes-Cluster müssen darauf zugreifen können.
-
Eine private Image-Registry, um Container-Images an Ihre Maschinen zu verteilen.
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
Diese Hosts werden vom Internet getrennt sein, müssen jedoch in der Lage sein, sich mit Ihrer privaten Registry zu verbinden.
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 Load Balancer einrichten, um den Datenverkehr an die Rancher-Replik auf beiden 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=externalOption 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, siehe diese Seite.
|
Verwenden Sie diesen Lastausgleich (d.h. den |
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.
4. Eine private Image-Registry einrichten
Rancher unterstützt Air Gap-Installationen mit einer sicheren privaten Registry. Sie müssen über Ihre eigene private Registry oder andere Möglichkeiten zur Verteilung von Container-Images an Ihre Maschinen verfügen.
In einem späteren Schritt, wenn Sie Ihr RKE Kubernetes-Cluster einrichten, erstellen Sie eine Konfigurationsdatei für private Registries mit Details aus dieser Registry.
Wenn Sie eine private Registry erstellen müssen, beachten Sie die Dokumentationsseiten für Ihre jeweilige Laufzeit: