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.

SUSE® Rancher Prime: OS Manager der Weg über die Befehlszeile

Befolgen Sie diesen Leitfaden, um einen automatisch bereitgestellten Cluster über rke2/k3s zu erhalten, der von Rancher verwaltet wird, mit Hilfe einer SUSE® Rancher Prime: OS Manager-ISO.

Voraussetzungen

  • Ein Rancher-Server (v2.7.0 oder später), konfiguriert (server-url gesetzt)

  • Eine Maschine (Bare-Metal oder virtualisiert) mit TPM 2.0

    • Hinweis 1: Libvirt ermöglicht das Setzen virtueller TPMs für virtuelle Maschinen Beispiel hier

    • Hinweis 2: Sie können die TPM-Emulation auf Bare-Metal-Maschinen aktivieren, denen das TPM 2.0-Modul fehlt Beispiel hier

    • Hinweis 3: Stellen Sie sicher, dass Sie UEFI (nicht BIOS) auf x86-64 verwenden, sonst bootet das ISO-Image nicht

    • Hinweis 4: Eine minimale Volumengröße von 25 GB wird empfohlen. Siehe die SUSE® Rancher Prime: OS Manager Partitionstabelle für weitere Details

    • Hinweis 5: Die CPU- und RAM-Anforderungen hängen von der installierten Kubernetes-Version ab, zum Beispiel K3s oder RKE2

  • Helm-Paketmanager (https://helm.sh/)

  • Für ARM (aarch64) - Eine SD-Karte (32 GB oder mehr, muss schnell sein - 40 MB/s Schreibgeschwindigkeit sind akzeptabel) und ein USB-Stick für die Installation

Installieren Sie den SUSE® Rancher Prime: OS Manager Operator

elemental-operator ist der Verwaltungsendpunkt, der den Verwaltungscluster betreibt und sich um die Erstellung von Inventaren, Registrierungen für Maschinen und vieles mehr kümmert.

Wir werden den Helm-Paketmanager verwenden, um das elemental-operator Chart in unseren Cluster zu installieren.

helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator-crds oci://registry.suse.com/rancher/elemental-operator-crds-chart

helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator oci://registry.suse.com/rancher/elemental-operator-chart

Nach ein paar Sekunden sollten Sie den Operator-Pod im cattle-elemental-system Namespace sehen:

kubectl get pods -n cattle-elemental-system

NAME                                  READY   STATUS    RESTARTS   AGE
elemental-operator-64f88fc695-b8qhn   1/1     Running   0          16s
Helm v3.8.0+ erforderlich
Das {elemental-product-name} Operator chart wird über ein OCI-Registry verteilt: Helm unterstützt OCI-basierte Registries korrekt ab der Version v3.8.0.
Tauschen Sie beim Upgrade von einer elemental-operator-Version (< 1.2.4) die Installationsreihenfolge der Charts.
Beim Upgrade von einer elemental-operator-Version, die die {elemental-product-name} CRDs (Version < 1.2.4) einbettet, schlägt die Installation des elemental-operator-crds Charts fehl.
Sie müssen zuerst das elemental-operator Chart upgraden und erst dann das elemental-operator-crds Chart installieren.

Nicht-stabile Installationen

Neben den oben aufgeführten Helm-Charts sind zwei weitere non-stable Versionen verfügbar.

  • Staging: bezieht sich auf die neueste getaggte Version von Github. Dies ist in den Next Seiten dokumentiert.

  • Development: bezieht sich auf den 'Tip of HEAD' von Github. Dies ist die laufende Entwicklungsversion und ändert sich ständig.

  • Staging-Version (x86-64, ARM64 (Raspberry Pi 4))

  • Entwicklungsversion (x86-64, ARM64 (Raspberry Pi 4))

helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator-crds oci://registry.opensuse.org/isv/rancher/elemental/staging/charts/rancher/elemental-operator-crds-chart
helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator oci://registry.opensuse.org/isv/rancher/elemental/staging/charts/rancher/elemental-operator-chart
Erinnerung

Die Entwicklungsversion wird nicht für Produktionsumgebungen empfohlen. Wir freuen uns über Feedback über Slack oder Github-Issues, aber sie könnte instabil sein und experimentelle Funktionen enthalten, die ohne Vorankündigung entfernt werden können.

helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator-crds oci://registry.opensuse.org/isv/rancher/elemental/dev/charts/rancher/elemental-operator-crds-chart
helm upgrade --create-namespace -n cattle-elemental-system --install --set image.imagePullPolicy=Always elemental-operator oci://registry.opensuse.org/isv/rancher/elemental/dev/charts/rancher/elemental-operator-chart

Installationsoptionen

Es gibt einige Optionen, die bei der Chart-Installation festgelegt werden können, aber das liegt außerhalb des Rahmens dieses Dokuments. Sie können alle Werte im Chart values.yaml sehen.

Bereiten Sie Ihre Kubernetes-Ressourcen vor

Die Bereitstellung des Knotens beginnt mit einem MachineRegistration, der eine Gruppe von Maschinen identifiziert, die dieselbe Konfiguration (Festplatten, Netzwerk usw.) teilen.

Das MachineRegistration wird benötigt, um die Bereitstellung des SUSE® Rancher Prime: OS Manager Betriebssystems auf den Zielhosts durchzuführen. Beim Hochfahren registriert sich jeder Host beim SUSE® Rancher Prime: OS Manager Operator, der den neuen Host mit einer MachineInventory Ressource verfolgt.

Dann geht es weiter mit einer Cluster-Ressource, die ein MachineInventorySelectorTemplate verwendet, um zu wissen, welche Maschinen zu diesem Cluster gehören.

Dieser Selektor ist ein einfacher Matcher, der auf Labels basiert, die im MachineInventory gesetzt sind. Wenn Ihr Selektor also auf das Label cluster-id mit dem Wert cluster-id-val übereinstimmt und Ihr MachineInventory dasselbe cluster-id:``cluster-id-val` Label aufweist, wird es übereinstimmen und als Teil des Clusters initialisiert werden.

In diesem Schnellstart werden wir die Ressourcen bereitstellen, um einen Cluster namens volcano zu erstellen, der auf MachineInventorys mit dem Label element:fire übereinstimmt.

  • Manuelles Erstellen der YAML-Dateien

  • Verwendung von Quickstart-Dateien aus dem SUSE® Rancher Prime: OS Manager Dokumentations-Repository direkt

Sie müssen die folgenden Dateien erstellen:

selector.yaml
Unresolved include directive in modules/de/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/selector.yaml[]

Wie Sie sehen können, ist dies ein sehr einfacher Selektor, der nach MachineInventory`s sucht, die ein Label mit dem Schlüssel `element und dem Wert fire haben.

cluster.yaml
Unresolved include directive in modules/de/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/cluster.yaml[]

Wie Sie sehen können, ist das machineConfigRef vom Typ MachineInventorySelectorTemplate mit dem Namen fire-machine-selector: es entspricht dem Selektor, den wir erstellt haben. Sie können weitere Informationen zu Clusteroptionen wie machineGlobalConfig oder machineSelectorConfig direkt in der Rancher Manager-Dokumentation erhalten.

  • Registrierung

  • Registrierung für Raspberry Pi

register.yaml
Unresolved include directive in modules/de/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/registration.yaml[]
rpi-registration.yaml
Unresolved include directive in modules/de/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/rpi-registration.yaml[]

Für die Bereitstellung auf Raspberry Pi müssen Sie emuliertes TPM aktivieren (es sei denn, Sie haben [ein Hardware-TPM für Raspberry Pi](https://thepihut.com/products/letstrust-tpm-for-raspberry-pi)). Sie müssen auch das Schreiben in den EFI-Speicher deaktivieren (da Raspberry Pi keinen hat) über disable-boot-entry: true.

Das MachineRegistration definiert die Registrierungs- und Installationskonfiguration. Sobald erstellt, stellt der SUSE® Rancher Prime: OS Manager Operator eine eindeutige URL zur Verfügung, die mit dem elemental-register Binary verwendet wird, um auf den Verwaltungscluster zuzugreifen und die Maschine während der Installation zu registrieren: Wenn die Registrierung erfolgreich ist, erstellt der Operator eine MachineInventory, die die Maschine verfolgt und verwendet werden kann, um die Maschine als Knoten unseres Clusters bereitzustellen. Wir definieren hier das Label, das mit unserem Selektor übereinstimmt, obwohl es auch später zu den erstellten `MachineInventory`s hinzugefügt werden kann.

Stellen Sie sicher, dass Sie die registration.yaml oben anpassen, um das richtige Installationsgerät festzulegen, das auf ein gültiges Gerät basierend auf Ihrer Knotenkonfiguration (z. B. /dev/sda, /dev/vda, /dev/nvme0 usw.) verweist.

Die SD-Karte auf einem Raspberry Pi ist normalerweise /dev/mmcblk0.

  • Seed-Image (x86_64)

  • Seed-Image für Raspberry Pi

seedimage.yaml
Unresolved include directive in modules/de/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/seedimage.yaml[]

Das SeedImage ist erforderlich, um das Seed-Image (wie eine bootfähige ISO) zu generieren, das gebootet wird und die SUSE® Rancher Prime: OS Manager Bereitstellung auf den Zielmaschinen startet.

Jetzt, da wir alle Konfigurationsdateien definiert haben, lassen Sie uns diese anwenden, um die richtigen Ressourcen in Kubernetes zu erstellen:

kubectl apply -f selector.yaml
kubectl apply -f cluster.yaml
kubectl apply -f registration.yaml
kubectl apply -f seedimage.yaml

Die SeedImage Ressource, die die Erstellung eines SUSE® Rancher Prime: OS Manager bootfähigen Images (das Seed-Image) automatisiert, unterstützt derzeit keine Raspberry Pi ISOs (klicken Sie [hier](raspi-disk.md) für eine Anleitung zum Erstellen eines Rohdisk-Images).

Wir werden ein Seed-Image manuell im [nächsten Abschnitt](quickstart-cli.md#preparing-the-installation-seed-image) generieren.

Jetzt, da wir alle Konfigurationsdateien definiert haben, lassen Sie uns diese anwenden, um die richtigen Ressourcen in Kubernetes zu erstellen:

kubectl apply -f selector.yaml
kubectl apply -f cluster.yaml
kubectl apply -f registration.yaml

Sie können die Quickstart-Beispielressourcendateien direkt aus dem [SUSE® Rancher Prime: OS Manager Dokumentations-Repository](https://github.com/rancher/elemental-docs) anwenden.

Die Quickstart-Beispielressourcendateien gehen davon aus, dass der Standard-Speicher des Zielhosts auf das /dev/sda abgebildet ist. Wenn Ihre Host-Speichergerätedatei anders ist, müssen Sie die registration.yaml-Datei vor der Anwendung ändern und das config.elemental.install.device entsprechend anpassen.

kubectl apply -f https://raw.githubusercontent.com/rancher/elemental-docs/main/examples/quickstart/selector.yaml
kubectl apply -f https://raw.githubusercontent.com/rancher/elemental-docs/main/examples/quickstart/cluster.yaml
kubectl apply -f https://raw.githubusercontent.com/rancher/elemental-docs/main/examples/quickstart/registration.yaml
kubectl apply -f https://raw.githubusercontent.com/rancher/elemental-docs/main/examples/quickstart/seedimage.yaml

Das seedimage.yaml unterstützt derzeit kein aarch64.

Vorbereiten des Installations- (Seed-) Images

Dies ist der letzte Schritt: Sie benötigen ein SUSE® Rancher Prime: OS Manager Seed-Image, das die anfängliche Registrierungskonfiguration enthält, damit es automatisch registriert, installiert und vollständig als Teil Ihres Clusters bereitgestellt werden kann.

Notiz

Die anfängliche Registrierungskonfigurationsdatei wird erstellt, wenn Sie ein Machine Registration erstellen.

Sie können es herunterladen mit:

wget --no-check-certificate `kubectl get machineregistration -n fleet-default fire-nodes -o jsonpath="{.status.registrationURL}"` -O initial-registration.yaml

Der Inhalt der Registrierungskonfigurationsdatei besteht nur aus der Registrierungs-URL, die der Knoten zur Registrierung benötigt, dem richtigen Serverzertifikat und einigen Optionen für den Registrierungsprozess.

Sobald es generiert wurde, kann ein Seed-Image verwendet werden, um beliebig viele Maschinen bereitzustellen.

  • Herunterladen der Quickstart-ISO

  • Das Seed-Image (aarch64) manuell vorbereiten

Das von der oben genannten SeedImage Ressource erstellte Seed-Image kann über das folgende Skript als ISO heruntergeladen werden:

kubectl wait --for=condition=ready pod -n fleet-default fire-img
wget --no-check-certificate `kubectl get seedimage -n fleet-default fire-img -o jsonpath="{.status.downloadURL}"` -O elemental.x86_64.iso

Der erste Befehl wartet darauf, dass die ISO erstellt und bereit ist, der zweite lädt sie im aktuellen Verzeichnis unter dem Namen elemental-x86_64.iso herunter.

Die Unterstützung von SUSE® Rancher Prime: OS Manager für Raspberry Pi dient zu diesem Zeitpunkt hauptsächlich zu Demonstrationszwecken. Daher ist der Installationsprozess ähnlich wie bei x86-64 modelliert. Sie booten von einem Seed-Image (in diesem Fall einem USB-Stick) und installieren auf ein Speichermedium (SD-Karte für Raspberry Pi).

Das vorgefertigte Seed-Image abrufen

wget -q https://download.opensuse.org/repositories/isv:/Rancher:/SUSE® Rancher Prime OS Manager:/Stable/containers/rpi.raw

Den Download überprüfen

Um die Integrität der heruntergeladenen Artefakte zu überprüfen, sollten Sie eine Prüfsummenüberprüfung durchführen:

wget -q https://download.opensuse.org/repositories/isv:/Rancher:/SUSE® Rancher Prime OS Manager:/Stable/containers/rpi.raw.sha256 sha256sum -c rpi.raw.sha256

Dies sollte rpi.raw: OK als Ausgabe ausgeben.

Die Registrierungsinformationen einfügen

Das Hinzufügen von initial-registration.yaml ist noch nicht als Skript umgesetzt. Dies ist immer noch ein manueller Prozess:

Der beschriebene USB-Stick hat zwei Partitionen. RPI_BOOT enthält die Bootloader-Dateien und COS_LIVE die SUSE® Rancher Prime: OS Manager-Dateien. Mounten Sie die COS_LIVE Partition und schreiben Sie initial-registration.yaml als livecd-cloud-config.yaml auf diese Partition.

Wenn Sie den USB-Stick mit einem Dateimanager gemountet haben, sollte dieser Befehl funktionieren, um die Registrierungsinformationen zu kopieren:

sudo cp initial-registration.yaml /run/media/$USER/COS_LIVE/livecd-cloud-config.yaml

Wenn Sie es bevorzugen, einige CLI-Tools zu verwenden:

IMAGE=rpi.raw
DEST=$(mktemp -d)

SECTORSIZE=$(sfdisk -J $\{IMAGE} | jq '.partitiontable.sectorsize')
DATAPARTITIONSTART=$(sfdisk -J $\{IMAGE} | jq '.partitiontable.partitions[1].start')
sudo mount -o rw,loop,offset=$(($\{SECTORSIZE}*$\{DATAPARTITIONSTART})) $\{IMAGE} $\{DEST}
sudo cp initial-registration.yaml $\{DEST}/livecd-cloud-config.yaml
sudo umount $\{DEST}
rmdir $\{DEST}

Das Seed-Image auf einen USB-Stick schreiben

Das .raw Image muss auf einen USB-Stick geschrieben werden, um davon zu booten. Dies kann mit dd in der Linux-Befehlszeile durchgeführt werden, wenn Sie mit diesem Befehl vertraut sind. [openSUSE](https://www.opensuse.org) hat schöne Anleitungen, wie man ein Image auf ein Speichermedium für [Linux](https://en.opensuse.org/SDB:Live_USB_stick), [Windows](https://en.opensuse.org/SDB:Create_a_Live_USB_stick_using_Windows) und [OS X](https://en.opensuse.org/SDB:Create_a_Live_USB_stick_using_macOS) schreibt.

Booten des Raspberry Pi

Hängen Sie nun den USB-Stick aus und stecken Sie ihn in Ihren Raspberry Pi.

Stecken Sie eine große (32 GB oder mehr) und schnelle (!!) micro SD-Karte in den entsprechenden Slot.

Verbinden Sie das System mit Ethernet.

Ein Neustart wird den Pi neu starten. Alles andere ist identisch mit x86-64.

Stellen Sie sicher, dass die micro SD-Karte nicht partitioniert ist. Andernfalls wird der Bootloader des Pi versuchen, von ihr zu booten und scheitern.

Sie können jetzt Ihre Knoten mit diesem Image starten und sie werden:

  • Sich mit der angegebenen registrationURL registrieren und eine maschinenbezogene MachineInventory erstellen.

  • Installieren Sie SLE Micro auf dem angegebenen Gerät.

  • Booten Sie den Computer neu

Die richtigen Maschinen auswählen, um einem Cluster beizutreten.

Das MachineInventorySelectorTemplate wählt die Maschinen aus, die benötigt werden, um den Cluster aus den MachineInventorys mit dem element:fire Label bereitzustellen. Wir haben das element:fire Label in der MachineRegistration machineInventoryLabels Karte hinzugefügt, sodass alle MachineInventorys, die daraus stammen, bereits das Label haben. Man könnte das Label aus dem MachineRegistration trotzdem überspringen und es später hinzufügen:

kubectl -n fleet-default label machineinventory $(kubectl get machineinventory -n fleet-default --no-headers -o custom-columns=":metadata.name") element=fire

Sobald MachineInventorys mit dem element:fire vorhanden sind, stellen die entsprechenden Maschinen den Cluster automatisch über den gewählten Anbieter (k3s/rke) bereit.

Nach ein paar Minuten wird Ihr neuer Cluster vollständig bereitgestellt sein!!

Wie kann ich die Kubernetes-Version und den Deployer für den Cluster auswählen?

In Ihrer cluster.yaml-Datei gibt es einen Schlüssel im Spec, der kubernetesVersion genannt wird. Das legt die Version und den Deployer fest, die für den Cluster verwendet werden, zum Beispiel Kubernetesv1.24.8 für rke2 wäre v1.24.8+rke2r1 und für k3s v1.24.8+k3s1.

Um alle kompatiblen Versionen zu sehen, überprüfen Sie die Rancher Support Matrix PDF für rke/rke2/k3s-Versionen und deren Komponenten.

Sie können auch unser Versionsdokument überprüfen, um zu erfahren, wie Sie diese Versionen erhalten können.

Überprüfen Sie unsere Cluster-Spezifikation Seite für weitere Informationen über die Cluster Ressource.

Wie kann ich verfolgen, was im Hintergrund passiert?

Sie sollten in der Lage sein, zu verfolgen, was die Maschine tut über:

  • Während des ISO-Boots:

    • ssh in die Maschine (Benutzer/Passwort: root/ros):

      • Das Ausführen von journalctl -f -t elemental zeigt Ihnen den Fortschritt der Registrierung (elemental-register) und der Installation von SUSE® Rancher Prime: OS Manager (elemental install).

  • Sobald das System installiert ist:

    • Im Rancher UI -> Cluster Management können Sie Ihren neuen Cluster und die Provisioning Log in den Cluster-Details sehen.

    • ssh in die Maschine (Benutzer/Passwort: Was auch immer Sie in der registration.yaml unter Spec.config.cloud-config.users konfiguriert haben):

      • Das Ausführen von journalctl -f -u elemental-system-agent zeigt die Ausgabe der initialen elemental-Konfiguration und der Installation des rancher-system-agent

      • Das Ausführen von journalctl -f -u rancher-system-agent zeigt die Ausgabe des Neu-Startens von Cluster-Komponenten wie k3s.

      • Das Ausführen von journalctl -f -u k3s zeigt die Protokolle der k3s-Implementierung.

Optional: Installieren Sie die Elemental UI-Erweiterung über die Kommandozeilenschnittstelle.

Erstellen und wenden Sie ein neues ClusterRepo an, um das offizielle Rancher Extensions-Repository hinzuzufügen.

apiVersion: catalog.cattle.io/v1
kind: ClusterRepo
metadata:
  name: rancher-ui-charts
spec:
  gitBranch: main
  gitRepo: https://github.com/rancher/ui-plugin-charts

Fügen Sie ein Helm-Repo für die Rancher UI-Erweiterungs-Charts hinzu.

helm repo add rancher-ui-plugins https://raw.githubusercontent.com/rancher/ui-plugin-charts/main/

Installieren Sie die Elemental UI-Erweiterung.

helm install elemental rancher-ui-plugins/elemental -n cattle-ui-plugin-system