|
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. |
CloudInit CRD
Sie können die CloudInit CRD verwenden, um SUSE Virtualization Betriebssystemeinstellungen entweder manuell oder mit GitOps-Lösungen zu konfigurieren.
Hintergrund
Das SUSE Virtualization Betriebssystem verwendet das elemental-toolkit, das eine einzigartige Form der cloud-init-Unterstützung bietet.
Einstellungen, die während des Installationsprozesses konfiguriert werden, werden in die elemental cloud-init-Datei im /oem Verzeichnis geschrieben. Da das Betriebssystem unveränderlich ist, stellt die cloud-init-Datei sicher, dass knotenspezifische Einstellungen bei jedem Neustart angewendet werden.
Die CloudInit CRD stellt die cloud-init-Datei über eine Kubernetes CRD zur Verfügung. Dies ermöglicht es Ihnen, knotenspezifische Einstellungen nach der Installation zu ändern, ohne Schritte unternehmen zu müssen, um das Root-Dateisystem beschreibbar zu machen.
Darüber hinaus wird die CloudInit CRD gespeichert und mit den zugrunde liegenden Hosts synchronisiert, sodass Änderungen, die direkt am Betriebssystem vorgenommen werden, nicht verloren gehen, wenn Knoten neu gestartet und aktualisiert werden.
|
Die |
Einführung
Das folgende Beispiel fügt allen Knoten in einem bestehenden SUSE Virtualization Cluster SSH-Schlüssel hinzu.
apiVersion: node.harvesterhci.io/v1beta1
kind: CloudInit
metadata:
name: my-ssh-keys
spec:
matchSelector:
harvesterhci.io/managed: "true"
filename: 99-my-ssh-keys
contents: |
stages:
network:
- name: "add my ssh keys"
authorized_keys:
rancher:
- ssh-rsa key1
- ssh-rsa key2
paused: false
Das spec Feld enthält Folgendes:
-
matchSelector (required): Label-Selector, der verwendet wird, um die Knoten zu identifizieren, auf die die Änderung angewendet werden muss. Sie können dasharvesterhci.io/managed: "true"Label verwenden, um alle Knoten auszuwählen. -
filename (required): Name der Datei in/oem. Cloud-init-Dateien in/oemwerden in alphabetischer Reihenfolge angewendet. Dies kann verwendet werden, um sicherzustellen, dass Dateiänderungen während des Bootvorgangs angewendet werden. -
content (required): Inline-Inhalt für die Elemental cloud-init Ressource, die an Zielknoten geschrieben wird. -
paused (optional): Verwendet, um denCloudInitCRD-Abgleich zu pausieren. Die SUSE Virtualization Controller überwachen Elemental cloud-init-Dateien, die von derCloudInitCRD verwaltet werden. Direkte Änderungen an diesen Dateien werden sofort mit dem definierten Zustand abgeglichen, es sei denn, die CRD ist pausiert.
Sobald das Objekt erstellt ist, können Sie sich bei den Zielknoten anmelden, um die Ergebnisse zu überprüfen.
Im folgenden Beispiel wird eine Datei mit dem Namen /oem/99-my-ssh-keys.yaml erstellt und anschließend von den SUSE Virtualization Controllern überwacht.
harvester-qhgd4:/oem # more 99-my-ssh-keys.yaml
stages:
network:
- name: "add my ssh keys"
authorized_keys:
rancher:
- ssh-rsa key1
- ssh-rsa key2
Die status Subressource kann verwendet werden, um den Rollout einer Änderung an den zugrunde liegenden Knoten zu verfolgen.
Im folgenden Beispiel zeigen die status Werte an, dass die Änderung auf alle drei Knoten im Cluster angewendet wurde.
status:
rollouts:
harvester-kfs2c:
conditions:
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: ""
reason: CloudInitApplicable
status: "True"
type: Applicable
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: Local file checksum is the same as the CloudInit checksum
reason: CloudInitChecksumMatch
status: "False"
type: OutOfSync
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: 99-my-ssh-keys.yaml is present under /oem
reason: CloudInitPresentOnDisk
status: "True"
type: Present
harvester-qhgd4:
conditions:
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: ""
reason: CloudInitApplicable
status: "True"
type: Applicable
- lastTransitionTime: "2024-08-26T04:00:00Z"
message: Local file checksum is the same as the CloudInit checksum
reason: CloudInitChecksumMatch
status: "False"
type: OutOfSync
- lastTransitionTime: "2024-08-26T04:00:00Z"
message: 99-my-ssh-keys.yaml is present under /oem
reason: CloudInitPresentOnDisk
status: "True"
type: Present
harvester-rmvzg:
conditions:
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: ""
reason: CloudInitApplicable
status: "True"
type: Applicable
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: Local file checksum is the same as the CloudInit checksum
reason: CloudInitChecksumMatch
status: "False"
type: OutOfSync
- lastTransitionTime: "2024-08-26T03:57:33Z"
message: 99-my-ssh-keys.yaml is present under /oem
reason: CloudInitPresentOnDisk
status: "True"
type: Present
|
Sobald die cloud-init-Änderungen angewendet sind, müssen Sie die Knoten neu starten, um sicherzustellen, dass die |
Das Löschen der CloudInit CRD führt zur Entfernung der zugehörigen Dateien von den zugrunde liegenden Knoten. Wie bei anderen cloud-init-Ressourcen treten die Auswirkungen dieser Änderung erst nach dem Neustart der betroffenen Knoten in Kraft.
Sie werden ermutigt, SUSE® Rancher Prime: Continuous Delivery und die CloudInit CRD zu nutzen, um Änderungen am SUSE Virtualization Betriebssystem zu verwalten.