Virtualisierung

Was ist cloud-init?

Definition

cloud-init is the standard mechanism for configuring a virtual machine on first boot, using metadata supplied by the platform. It handles SSH key injection, hostname, network configuration and arbitrary user scripts, which is what makes fully automated provisioning possible.

Warum cloud-init wichtig ist

Es übernimmt SSH-Key-Injection, Hostname, Netzwerkkonfiguration und beliebige Benutzerskripte, was vollautomatisches Provisioning möglich macht.

cloud-init in der Praxis

Bei einem frischen Boot läuft cloud-init, bevor Ihre Dienste starten. Sie würden die Konsole auf 'running modules' beobachten und /var/log/cloud-init-output.log prüfen. Ein falsch konfiguriertes User-Data-Skript kann den Boot aufhängen oder SSH aussperren. Sie sollten zuerst in einer Wegwerfinstanz testen. Sie können mit 'cloud-init clean' neu starten und neu booten. Wenn Sie es falsch machen, kostet es Zeit, von der Konsole neu bereitzustellen oder eine VNC-Sitzung, um es von Hand zu beheben.

Was Leute bei cloud-init falsch machen

Der häufige Fehler ist die Annahme, dass cloud-init bei jedem Boot erneut ausgeführt wird. Es wird nur beim ersten Boot ausgeführt. Wenn Sie ein Skript zu user-data hinzufügen, in der Erwartung, dass es beim Neustart angewendet wird, wird das nicht passieren. Korrektur: Verwenden Sie es nur für die Erstbereitstellung, oder rufen Sie explizit 'cloud-init clean' auf, um den Zustand für einen neuen Lauf zurückzusetzen.

cloud-init – häufige Fragen

Wie übergebe ich user-data an cloud-init?

Bei der Bereitstellung über das Panel oder die API können Sie ein user-data-Feld angeben. Es wird über Metadaten injiziert, und cloud-init wendet es beim ersten Boot an. Halten Sie es als Shell-Skript oder als cloud-config-YAML, je nachdem, was Sie benötigen.

Kann ich cloud-init mit einem benutzerdefinierten ISO verwenden?

Ja, wenn das ISO cloud-init installiert hat. Zum Beispiel enthalten Cloud-Images der großen Distributionen es. Sie können auch Ihr eigenes Image mit cloud-init hochladen. Stellen Sie sicher, dass die Instanz KVM ist, nicht ein Container, da cloud-init auf Plattform-Metadaten angewiesen ist.

Mehr aus virtualisierung

KVM
KVM ist vollständige Hardware-Virtualisierung, die in den Linux-Kernel integriert ist und jedem Gast einen eigenen Kernel und hardwaregestützte Isolierung von anderen Mandanten bietet.
OpenVZ
OpenVZ ist containerbasierte Virtualisierung, bei der jede Instanz den Host-Kernel teilt, sodass Gäste keine Kernel-Module laden oder ein anderes Betriebssystem ausführen können.
LXC
LXC ist Linux-native Containerisierung, die Prozesse mit Namespaces und Cgroups isoliert, während der Host-Kernel geteilt wird.
Hypervisor
Ein Hypervisor ist die Softwareschicht, die virtuelle Maschinen erstellt und ausführt und physische CPU, Speicher und E/A zwischen ihnen zuteilt.
Verschachtelte Virtualisierung
Verschachtelte Virtualisierung ermöglicht es einer virtuellen Maschine, selbst virtuelle Maschinen auszuführen, indem die Prozessor-Virtualisierungserweiterungen dem Gast exponiert werden.
vCPU
Eine vCPU ist ein virtueller Prozessor, der einem Gast präsentiert wird und durch Planungszeit auf einem physischen Kern oder Thread unterstützt wird.