|
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. |
Installieren/Upgrade von SUSE Rancher Prime auf einem Kubernetes-Cluster
In diesem Abschnitt lernen Sie, wie Sie Rancher auf einem Kubernetes-Cluster mit der Helm-CLI bereitstellen.
Voraussetzungen
Kubernetes Cluster
Richten Sie den lokalen Kubernetes-Cluster des Rancher-Servers ein.
Rancher kann auf jedem Kubernetes-Cluster installiert werden. Dieser Cluster kann Upstream Kubernetes verwenden, oder er kann eine der Kubernetes-Distributionen von Rancher nutzen, oder es kann ein verwalteter Kubernetes-Cluster von einem Anbieter wie Amazon EKS sein.
Für Hilfe bei der Einrichtung eines Kubernetes-Clusters stellen wir diese Tutorials zur Verfügung:
-
K3s: Für die Anleitung zur Installation eines K3s Kubernetes-Clusters verweisen Sie auf diese Seite. Für Hilfe bei der Einrichtung der Infrastruktur für einen hochverfügbaren K3s-Cluster verweisen Sie auf diese Seite.
-
RKE2: Für die Anleitung zur Installation eines RKE2 Kubernetes-Clusters verweisen Sie auf diese Seite. Für Hilfe bei der Einrichtung der Infrastruktur für einen hochverfügbaren RKE2-Cluster verweisen Sie auf diese Seite.
-
Amazon EKS: Für Details zur Installation von Rancher auf Amazon EKS, einschließlich der Installation eines Ingress-Controllers, damit der Rancher-Server zugänglich ist, siehe diese Seite.
-
AKS: Für Details zur Installation von Rancher mit Azure Kubernetes Service, einschließlich der Installation eines Ingress-Controllers, damit der Rancher-Server zugänglich ist, siehe diese Seite.
-
GKE: Für Details zur Installation von Rancher mit Google Kubernetes Engine, einschließlich der Installation eines Ingress-Controllers, damit der Rancher-Server zugänglich ist, siehe diese Seite. GKE hat zwei Betriebsmodi beim Erstellen eines Kubernetes-Clusters, Autopilot und Standardmodus. Die Clusterkonfiguration für den Autopilotmodus hat Einschränkungen beim Bearbeiten des kube-system-Namensraums. Rancher muss jedoch während der Installation Ressourcen im kube-system-Namensraum erstellen. Daher können Sie Rancher nicht auf einem GKE-Cluster installieren, der im Autopilot-Modus erstellt wurde.
Ingress-Controller
Die Rancher-Benutzeroberfläche und die API werden über einen Ingress bereitgestellt. Das bedeutet, dass der Kubernetes-Cluster, in dem Sie Rancher installieren, einen Ingress-Controller enthalten muss.
Für RKE2- und K3s-Installationen müssen Sie den Ingress-Controller nicht manuell installieren, da einer standardmäßig installiert wird.
Für Distributionen, die standardmäßig keinen Ingress-Controller enthalten, wie einen gehosteten Kubernetes-Cluster wie EKS, GKE oder AKS, müssen Sie zuerst einen Ingress-Controller bereitstellen. Beachten Sie, dass das Rancher-Helm-Chart standardmäßig kein ingressClassName für den Ingress festlegt. Aus diesem Grund müssen Sie den Ingress-Controller so konfigurieren, dass er auch Ingresses ohne ein ingressClassName überwacht.
Beispiele sind in den oben genannten Amazon EKS, AKS und GKE-Tutorials enthalten.
Kommandozeilenschnittstelle-Tools
Die folgenden Kommandozeilenwerkzeuge sind erforderlich, um den Kubernetes-Cluster einzurichten. Bitte stellen Sie sicher, dass diese Tools installiert sind und in Ihrem $PATH verfügbar sind.
-
kubectl - Kubernetes-Kommandozeilenwerkzeug.
-
helm - Paketverwaltung für Kubernetes. Verweisen Sie auf die Helm-Versionanforderungen, um eine passende Helm-Version auszuwählen, mit der Rancher installiert wird. Verweisen Sie auf die vom Helm-Projekt bereitgestellten Anweisungen für Ihre spezifische Plattform.
Installieren Sie das Rancher Helm Chart.
Rancher wird mit dem Helm Paketmanager für Kubernetes installiert. Helm-Charts bieten eine Vorlagensyntax für Kubernetes-YAML-Manifestdokumente. Mit Helm können wir konfigurierbare Deployments erstellen, anstatt nur statische Dateien zu verwenden.
Für Systeme ohne direkten Internetzugang siehe Air Gap: Kubernetes install.
Um eine Rancher-Version auszuwählen, die installiert werden soll, verweisen Sie auf xref:[Wählen einer Rancher-Version.]
Um eine Version von Helm auszuwählen, mit der Rancher installiert werden soll, verweisen Sie auf die Helm-Versionanforderungen
|
Die Installationsanweisungen setzen voraus, dass Sie Helm 3 verwenden. |
Um Rancher einzurichten,
-
Installieren Sie cert-manager (es sei denn, Sie bringen Ihre eigenen Zertifikate mit oder TLS wird an einem Lastenausgleich beendet)
-
Installieren Sie Rancher mit Helm und Ihrer gewählten Zertifikatsoption
-
Überprüfen Sie, ob der Rancher-Server erfolgreich bereitgestellt wurde
1. Fügen Sie das Helm-Chart-Repository hinzu
Verwenden Sie den helm repo add Befehl, um das Helm-Chart-Repository hinzuzufügen, das Charts zum Installieren von Rancher Prime enthält.
helm repo add rancher-prime <helm-chart-repo-url>
|
To learn more about the Rancher Prime Helm chart repository URL, see our Prime-only documentation. Authentication is required. Use your SUSE Customer Center (SCC) credentials to log in. |
2. Erstellen Sie einen Namespace für Rancher
Wir müssen einen Kubernetes-Namespace definieren, in dem die vom Chart erstellten Ressourcen installiert werden sollen. Dies sollte immer cattle-system sein:
kubectl create namespace cattle-system
3. Wählen Sie Ihre SSL-Konfiguration
Der Rancher-Management-Server ist standardmäßig sicher konzipiert und erfordert eine SSL/TLS-Konfiguration.
|
Wenn Sie SSL/TLS extern beenden möchten, siehe TLS-Terminierung auf einem externen Lastenausgleich. Wie auf dieser Seite dargelegt, hat diese Option zusätzliche Anforderungen für die TLS-Überprüfung. |
Es gibt drei empfohlene Optionen für die Quelle des Zertifikats, das für die TLS-Beendigung am Rancher-Server verwendet wird:
-
Vom Rancher generiertes TLS-Zertifikat: In diesem Fall müssen Sie
cert-managerin den Cluster installieren. Rancher nutztcert-manager, um seine Zertifikate auszustellen und zu verwalten. Rancher wird ein eigenes CA-Zertifikat generieren und ein Zertifikat mit dieser CA signieren.cert-managerist dann verantwortlich für die Verwaltung dieses Zertifikats. Es sind keine zusätzlichen Maßnahmen erforderlich, wennagent-tls-modeauf strikt gesetzt ist. Weitere Informationen zu dieser Einstellung finden Sie in Agent TLS Enforcement. -
Let’s Encrypt: Die Let’s Encrypt-Option verwendet ebenfalls
cert-manager. In diesem Fall wird der cert-manager mit einem speziellen Issuer für Let’s Encrypt kombiniert, der alle erforderlichen Aktionen (einschließlich Anfrage und Validierung) zur Erlangung eines von Let’s Encrypt ausgestellten Zertifikats durchführt. Diese Konfiguration verwendet die HTTP-Validierung (HTTP-01), sodass der Lastenausgleich einen öffentlichen DNS-Eintrag haben und aus dem Internet zugänglich sein muss. Beim Setzen vonagent-tls-modeaufstrictmüssen Sie auch--privateCA=trueangeben und das Let’s Encrypt CA wie in Hinzufügen von TLS-Geheimnissen hochladen. Weitere Informationen zu dieser Einstellung finden Sie in Agent TLS Enforcement. -
Bringen Sie Ihr eigenes Zertifikat mit: Diese Option ermöglicht es Ihnen, Ihr eigenes öffentliches oder privat signiertes CA-Zertifikat mitzubringen. Rancher wird dieses Zertifikat verwenden, um Websocket- und HTTPS-Verkehr abzusichern. In diesem Fall müssen Sie dieses Zertifikat (und den zugehörigen Schlüssel) als PEM-codierte Dateien mit den Namen
tls.crtundtls.keyhochladen. Wenn Sie eine private CA verwenden, müssen Sie auch dieses Zertifikat hochladen. Dies liegt daran, dass diese private CA möglicherweise von Ihren Knoten nicht vertraut wird. Rancher wird dieses CA-Zertifikat nehmen und eine Prüfsumme daraus generieren, die die verschiedenen Rancher-Komponenten verwenden werden, um ihre Verbindung zu Rancher zu validieren. Wennagent-tls-modeaufstrictgesetzt ist, muss die CA hochgeladen werden, damit Downstream-Cluster erfolgreich eine Verbindung herstellen können. Weitere Informationen zu dieser Einstellung finden Sie in Agent TLS Enforcement.
| Konfiguration | Helm-Chart-Option | Benötigt cert-manager |
|---|---|---|
Von Rancher generierte Zertifikate (Standard) |
|
|
Let’s Encrypt |
|
|
Zertifikate aus Dateien |
|
Nein |
4. Installieren Sie cert-manager
Sie sollten diesen Schritt überspringen, wenn Sie Ihre eigenen Zertifikatdateien mitbringen (Option
ingress.tls.source=secret), oder wenn Sie TLS-Terminierung auf einem externen Lastenausgleich verwenden.
Dieser Schritt ist nur erforderlich, um Zertifikate zu verwenden, die von der von Rancher generierten CA (ingress.tls.source=rancher) ausgestellt wurden, oder um Zertifikate von Let’s Encrypt (ingress.tls.source=letsEncrypt) anzufordern.
Zum Aufklappen klicken
|
Wichtig:
Jüngste Änderungen am cert-manager erfordern ein Upgrade. Wenn Sie Rancher aktualisieren und eine Version von cert-manager verwenden, die älter als v0.11.0 ist, lesen Sie bitte unsere Upgrade-Dokumentation. |
Diese Anweisungen sind aus der offiziellen cert-manager-Dokumentation übernommen.
|
Um Optionen zur Anpassung der cert-manager-Installation zu sehen (einschließlich für Fälle, in denen Ihr Cluster PodSecurityPolicies verwendet), siehe die cert-manager-Dokumentation. |
# If you have installed the CRDs manually, instead of setting `installCRDs` or `crds.enabled` to `true` in your Helm install command, you should upgrade your CRD resources before upgrading the Helm chart: kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml # Add the Jetstack Helm repository helm repo add jetstack https://charts.jetstack.io # Update your local Helm chart repository cache helm repo update # Install the cert-manager Helm chart helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --set crds.enabled=true
Sobald Sie cert-manager installiert haben, können Sie überprüfen, ob es korrekt bereitgestellt wurde, indem Sie den cert-manager-Namespace auf laufende Pods überprüfen:
kubectl get pods --namespace cert-manager NAME READY STATUS RESTARTS AGE cert-manager-5c6866597-zw7kh 1/1 Running 0 2m cert-manager-cainjector-577f6d9fd7-tr77l 1/1 Running 0 2m cert-manager-webhook-787858fcdb-nlzsq 1/1 Running 0 2m
5. Installieren Sie Rancher mit Helm und Ihrer gewählten Zertifikatsoption.
Der genaue Befehl zur Installation von Rancher hängt von der Zertifikatkonfiguration ab.
Unabhängig von der Zertifikatkonfiguration sollte der Name der Rancher-Installation im cattle-system Namespace immer rancher sein.
|
Testen und Entwicklung:
Dieser letzte Befehl zur Installation von Rancher erfordert einen Domainnamen, der den Verkehr an Rancher weiterleitet. Wenn Sie die Helm-CLI verwenden, um ein Proof-of-Concept einzurichten, können Sie einen falschen Domainnamen verwenden, wenn Sie die |
-
Von Rancher generierte Zertifikate
-
Let’s Encrypt
-
Zertifikate aus Dateien
Standardmäßig generiert Rancher eine CA und verwendet cert-manager, um das Zertifikat für den Zugriff auf die Rancher-Serveroberfläche auszustellen.
Da rancher die Standardoption für ingress.tls.source ist, geben wir ingress.tls.source beim Ausführen des helm install Befehls nicht an.
-
Setzen Sie
hostnameauf den DNS-Namen, den Sie Ihrem Load-Balancer zugeordnet haben. -
Setzen Sie
bootstrapPasswordauf etwas Einzigartiges für denadmin-Benutzer. -
Um eine bestimmte Rancher-Version zu installieren, verwenden Sie das
--versionFlag, Beispiel:--version 2.7.0
helm install rancher rancher-prime/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set bootstrapPassword=admin
Warten Sie, bis Rancher ausgerollt ist:
kubectl -n cattle-system rollout status deploy/rancher Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... deployment "rancher" successfully rolled out
Diese Option verwendet cert-manager, um automatisch Let’s Encrypt Zertifikate anzufordern und zu erneuern. Dies ist ein kostenloser Dienst, der Ihnen ein gültiges Zertifikat bereitstellt, da Let’s Encrypt eine vertrauenswürdige CA ist.
|
Sie müssen Port 80 geöffnet haben, da die HTTP-01-Herausforderung nur auf Port 80 durchgeführt werden kann. |
Im folgenden Befehl,
-
wird
hostnameauf den öffentlichen DNS-Eintrag gesetzt, -
Setzen Sie
bootstrapPasswordauf etwas Einzigartiges für denadmin-Benutzer. -
ingress.tls.sourceist aufletsEncryptgesetzt -
letsEncrypt.emailist auf die für die Kommunikation über Ihr Zertifikat verwendete E-Mail-Adresse gesetzt (zum Beispiel, Ablaufbenachrichtigungen) -
Setzen Sie
letsEncrypt.ingress.classauf das, was Ihr Ingress-Controller ist, z.B.traefik,nginx,haproxyusw.
|
Wenn |
helm install rancher rancher-prime/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set bootstrapPassword=admin \ --set ingress.tls.source=letsEncrypt \ --set letsEncrypt.email=me@example.org \ --set letsEncrypt.ingress.class=nginx
Warten Sie, bis Rancher ausgerollt ist:
kubectl -n cattle-system rollout status deploy/rancher Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... deployment "rancher" successfully rolled out
In dieser Option werden Kubernetes-Secrets aus Ihren eigenen Zertifikaten erstellt, die Rancher verwenden kann.
Wenn Sie diesen Befehl ausführen, muss die hostname-Option mit Common Name oder einem Subject Alternative Names-Eintrag im Serverzertifikat übereinstimmen, sonst kann der Ingress-Controller nicht korrekt konfiguriert werden.
Obwohl ein Eintrag in der Subject Alternative Names technisch erforderlich ist, maximiert ein passendes Common Name die Kompatibilität mit älteren Browsern und Anwendungen.
|
Wenn Sie überprüfen möchten, ob Ihre Zertifikate korrekt sind, siehe Wie überprüfe ich den Common Name und die Subject Alternative Names in meinem Serverzertifikat? |
-
Setzen Sie den
hostname. -
Setzen Sie
bootstrapPasswordauf etwas Einzigartiges für denadmin-Benutzer. -
Setzen Sie
ingress.tls.sourceaufsecret.
helm install rancher rancher-prime/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set bootstrapPassword=admin \ --set ingress.tls.source=secret
Wenn Sie ein von einer privaten CA signiertes Zertifikat verwenden, fügen Sie --set privateCA=true dem Befehl hinzu:
helm install rancher rancher-prime/rancher \ --namespace cattle-system \ --set hostname=rancher.my.org \ --set bootstrapPassword=admin \ --set ingress.tls.source=secret \ --set privateCA=true
Jetzt, da Rancher bereitgestellt ist, siehe Hinzufügen von TLS-Secrets, um die Zertifikatdateien zu veröffentlichen, damit Rancher und der Ingress-Controller sie verwenden können.
Die Rancher-Chart-Konfiguration bietet viele Optionen zur Anpassung der Installation an Ihre spezifische Umgebung. Hier sind einige gängige erweiterte Szenarien.
Siehe die Chart-Optionen für die vollständige Liste der Optionen.
6. Überprüfen Sie, ob der Rancher-Server erfolgreich bereitgestellt wurde
Überprüfen Sie nach dem Hinzufügen der Secrets, ob Rancher erfolgreich ausgerollt wurde:
kubectl -n cattle-system rollout status deploy/rancher Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... deployment "rancher" successfully rolled out
Wenn Sie den folgenden Fehler sehen: error: deployment "rancher" exceeded its progress deadline, können Sie den Status der Bereitstellung überprüfen, indem Sie den folgenden Befehl ausführen:
kubectl -n cattle-system get deploy rancher NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE rancher 3 3 3 3 3m
Es sollte die gleiche Anzahl für DESIRED und AVAILABLE anzeigen.
7. Speichern Sie Ihre Optionen
Stellen Sie sicher, dass Sie die von Ihnen verwendeten --set-Optionen speichern. Sie müssen die gleichen Optionen verwenden, wenn Sie Rancher auf neue Versionen mit Helm upgraden.
Abschluss
Das ist alles. Sie sollten einen funktionierenden Rancher-Server haben.
Gehen Sie in einem Webbrowser zu dem DNS-Namen, der den Datenverkehr an Ihren Load-Balancer weiterleitet. Dann sollten Sie von der bunten Anmeldeseite begrüßt werden.
Funktioniert nicht? Werfen Sie einen Blick auf die Fehlerbehebungs-Seite