cherezoff - stock.adobe.com
LXD-Hypervisor: Tutorial zu Start und Konfiguration
LXD ist ein schlanker Hypervisor für Linux-Systeme. Dieses Tutorial führt durch den Prozess, mit dem sich das System starten und konfigurieren lässt und Images ausgeführt werden.
Wollen Administratoren mit dem LXD-Hypervisor von Linux experimentieren, ist die grundlegende Einrichtung recht unkompliziert. In Ubuntu Server 18.04 LTS ist der LXD Hypervisor standardmäßig vorinstalliert. Die meisten Administratoren haben dieses Betriebssystem bereits heruntergeladen und in ihren Netzwerken konfiguriert.
Allerdings müssen sie erst Mitglieder der LXD-Gruppe sein, bevor sie den LXD Hypervisor einsetzen können. Eine andere Möglichkeit, LXD auszuprobieren ist die Online-Testumgebung, die LXD bereitstellt.
LXD ist ein sehr schlanker Hypervisor. Er funktioniert zudem als API-First Management-Infrastruktur. Das hilft Administratoren dabei, das Ausrollen neuer Anwendungen schnell zu programmieren und automatisieren.
Linux-Befehle für den Einsatz und die Konfiguration des LXD-Hypervisors
Sind Sie noch kein Mitglied der LXD-Gruppe, können Sie das mit dem nachfolgenden Befehl ändern:
sudo usermod -a -G lxd stuart
Sobald Sie in der LXD-Gruppe sind, lässt sich der LXD-Containerservice mit diesem Befehl starten:
sudo lxd init
Der LXD-Server stellt nun eine Abfolge von Fragen. Zum Beispiel, ob Sie ein Cluster, neue Storage Pools oder Netzwerkkonfigurationen erstellen möchten. In der Konfiguration in Abbildung 1 können Sie bis auf das Passwort (hier verwenden Sie selbstverständlich Ihr eigenes Passwort) die Standardoptionen übernehmen.
Die Standardkonfiguration erstellt einen Storage Pool innerhalb einer Datei, die das System verwenden darf. Wer in einer produktiven Umgebung arbeitet, dem dürfte bekannt sein, dass man den LXD-Hypervisor genauer konfigurieren muss.
Vielleicht wird zum Bespiel auch ein separater, dedizierter Storage Pool benötigt, der auf einem hochperformanten Storage Array läuft. Möglicherweise sind auch redundante Netzwerk-Uplinks notwendig und cgroups, um den Ressourcenverbrauch individueller Container zu kontrollieren.
Container-Images im LXD-Hypervisor einsetzen
Ist der erste Konfigurationsschritt abgeschlossen, startet der LXD-Containerservice automatisch und die Installation des Services wird abgeschlossen. Sie können nun ohne größeren Aufwand Images einsetzen. Um zum Beispiel einen einfachen Ubuntu-Server zu betreiben, können sie folgenden Befehl benutzen:
lxd launch ubuntu mytestserver
Der Befehl erledigt zwei Dinge. Zunächst lädt er ein Container-Image herunter. Danach führt er das Image aus. Als Voreinstellung lädt der LXD-Befehl nur das aktuelle Ubuntu-Image herunter. LXD funktioniert aber auch mit vielen anderen Images, wie zum Beispiel Docker und Microsofts SQL Server 2017. Wollen Sie wissen, welche Images verfügbar sind, führen Sie diesen Befehl aus:
lxc image list images: | more
Der Befehl hat sich von lxd zu lxc geändert, weil Sie nicht mehr länger mit dem LXD-Daemon arbeiten, sondern mit LXC, der Anwendung, die für das Management der Container zuständig ist.
Benötigen Sie eine bestimmte Distribution, können Sie den Befehl wie folgt modifizieren:
lxc image list images: 'debian'
Sie können auch eine vom Standard abweichende Version auswählen, indem Sie die Version an den Namen des Images anhängen. Ein Beispiel wäre:
lxc launch ubuntu:16.04 mytestserver02
Sie haben nun ein oder zwei Server zum Laufen gebracht. Sie bekommen Zugriff auf diese, indem Sie im nachfolgenden Befehl web durch den Namen Ihrer laufenden Instanz ersetzen:
lxc exec web -- /bin/bash
Sie beenden die Sitzung, indem Sie exit in der Bash-Sitzung ausführen. Nachdem Sie sich von der Bash-Sitzung abgemeldet haben, läuft das Container-Image trotzdem weiter.
Sie können in Ihren Containerinstanzen auch Linux-Befehle ausführen. Dazu verwenden Sie die exec-Funktion. Zum Beispiel können Sie mit folgendem Befehl auf einem Testserver mit Namen mytestserver Apache installieren:
lxc exec web -- apt update
lxc exec web -- apt install apache2
Wollen Sie wissen, welche Instanzen auf dem Host laufen, erledigen Sie das mit diesem Befehl:
lxc list
Müssen Sie einen Container stoppen, können Sie diesen Befehl nutzen:
lxc stop <container name>
Sie löschen einen Container wie folgt:
lxc delete <container name>
Sie können nun Container einsetzen, starten und löschen. Nun wenden wir uns dem Thema Netzwerk zu. Wie bei den meisten Hypervisoren können Administratoren das Netzwerk auf verschiedene Arten konfigurieren. Die meisten LXD-Administratoren übernehmen jedoch die Standardeinstellungen.
Container über einen Proxy bereitzustellen ist nicht kompliziert. Sie können die IP des Hypervisors anbinden und das System leitet über den Port weiter, der für die Kommunikation mit dem Container notwendig ist. Zum Beispiel konfiguriert der nachfolgende Befehl Port 80:
sudo lxc config device add web1 port80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80
Andere Port-Konfigurationen lassen sich genauso einfach realisieren. Sie ändern dafür einfach die Port-Nummern und weisen einen neuen Alias zu.
Sie haben nun erfolgreich die grundlegende Konfiguration des LXD-Hypervisors durchgeführt. Gibt es während der Einrichtung irgendwelche Probleme, helfen vielleicht die nachfolgenden Befehle zur Problemfindung:
lxc network
lxc info