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.

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,

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-manager in den Cluster installieren. Rancher nutzt cert-manager, um seine Zertifikate auszustellen und zu verwalten. Rancher wird ein eigenes CA-Zertifikat generieren und ein Zertifikat mit dieser CA signieren. cert-manager ist dann verantwortlich für die Verwaltung dieses Zertifikats. Es sind keine zusätzlichen Maßnahmen erforderlich, wenn agent-tls-mode auf 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 von agent-tls-mode auf strict müssen Sie auch --privateCA=true angeben 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.crt und tls.key hochladen. 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. Wenn agent-tls-mode auf strict gesetzt 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)

ingress.tls.source=rancher

Ja

Let’s Encrypt

ingress.tls.source=letsEncrypt

Ja

Zertifikate aus Dateien

ingress.tls.source=secret

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 hostname Option übergeben. Ein Beispiel für einen falschen Domainnamen wäre <IP_OF_LINUX_NODE>.sslip.io, der Rancher auf einer IP exponiert, auf der es läuft. Produktionsinstallationen erfordern einen echten Domainnamen.

  • 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 hostname auf den DNS-Namen, den Sie Ihrem Load-Balancer zugeordnet haben.

  • Setzen Sie bootstrapPassword auf etwas Einzigartiges für den admin-Benutzer.

  • Um eine bestimmte Rancher-Version zu installieren, verwenden Sie das --version Flag, 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 hostname auf den öffentlichen DNS-Eintrag gesetzt,

  • Setzen Sie bootstrapPassword auf etwas Einzigartiges für den admin-Benutzer.

  • ingress.tls.source ist auf letsEncrypt gesetzt

  • letsEncrypt.email ist auf die für die Kommunikation über Ihr Zertifikat verwendete E-Mail-Adresse gesetzt (zum Beispiel, Ablaufbenachrichtigungen)

  • Setzen Sie letsEncrypt.ingress.class auf das, was Ihr Ingress-Controller ist, z.B. traefik, nginx, haproxy usw.

Wenn agent-tls-mode auf strict gesetzt ist (der Standardwert für neue Installationen von Rancher ab v2.9.0), müssen Sie den privateCA=true-Wert des Charts angeben (z. B. über --set privateCA=true) und die Let’s Encrypt-Zertifizierungsstelle hochladen, wie in Hinzufügen von TLS-Secrets beschrieben. Informationen zur Identifizierung der Let’s Encrypt Root CA finden Sie in der Let’s Encrypt Dokumentation. Wenn Sie die CA nicht hochladen, kann Rancher möglicherweise keine Verbindung zu neuen oder bestehenden Downstream-Clustern herstellen.

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 bootstrapPassword auf etwas Einzigartiges für den admin-Benutzer.

  • Setzen Sie ingress.tls.source auf secret.

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