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.

Abbildung 1: Einige laufende Container auf einem LXD-Host.
Abbildung 1: Einige laufende Container auf einem LXD-Host.

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

Abbildung 2: Starten eines Containers von einem Image.
Abbildung 2: Starten eines Containers von einem Image.

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

Nächste Schritte

CoreOS, Docker oder LXD: welches eignet sich für Ihren Anwendungsfall?

Webserver-Management: Best Practices

Wie sich Sicherheitskonzepte für den Einsatz von Containern weiterentwickeln

Erfahren Sie mehr über Server- und Desktop-Virtualisierung