Alternative zu Docker und Co.: Container-Management mit systemd

Inzwischen gibt es zahlreiche Tools zum Management von Linux-Containern. Gerade systemd bietet gegenüber anderen Lösungen einige zentrale Vorteile.

Systemd ist mittlerweile per Standard der Service-Manager auf fast allen Linux-Systemen, was systemd auch zur logischen Wahl für die Bereitstellung von Linux-Containern macht. Systemd bietet einen bequemen Standard zur Kontrolle von Programmen und Diensten, genauso wie zur Ressourcenzuteilung und zum Einrichten des Dateisystems.

Tatsächlich macht sich langsam die Meinung breit, systemd würde um zu viele Funktionen erweitert, und in gewisser Weise stimmt das auch. Auf viele Aufgaben ausgerichtete Tools widersprechen der eigentlichen Linux-Philosophie, für eine Aufgabe genau ein Tool zur Verfügung zu stellen. Trotzdem ist systemd zu einem fortgeschrittenen Service-Manager gewachsen, auf den sich viele Linux-Administratoren tagtäglich verlassen – warum das Tool dann nicht auch zur Bereitstellung und Verwaltung von Linux-Containern verwenden?

Was genau ist eigentlich ein Linux-Container?

Ein Container ist eigentlich nichts anderes als ein Linux-Service, der in einer isolierten Umgebung auf dem Linux-Kernel läuft. Auf Dienste in einem Container können von anderen Containern aus nicht zugegriffen werden, weil hier ausgefeilte Sicherheitsmechanismen wie namespaces und chroot zum Einsatz kommen.

Linux-Container gibt es Dank LXC und Virtuozzo schon eine ganze Weile, aber erst durch Docker wurden Linux-Container in den letzten ein, zwei Jahren richtig populär, so dass verschiedene Anbieter inzwischen Management-Tools für Container veröffentlicht haben. Bei so vielen verschiedenen und hochspezialisierten Tools stellt sich natürlich die Frage, wie sinnvoll Bereitstellung und Management von Containern mit systemd tatsächlich ist.

So funktionieren systemd-Container

Wie bereits erwähnt, sind Container Dienste, die in isolierten, sicheren Umgebungen mit dedizierten Ressourcen auf dem Linux-Kernel ausgeführt werden. Container sind äußerst portabel und können auf allen Linux-Distributionen ausgeführt werden. Systemd wiederum ist ein Service-Manager, der diese Dienste erst möglich macht und die Komponenten verwaltet, durch die die Isolierung der Container möglich wird, beispielsweise cgroups oder chroot.

In systemd ist nspawn die Komponente, die zum Starten von Containern genutzt werden kann. Dies ist ein relativ neuer Ansatz, der mit dem systemd-Release in Red Hat Enterprise Linux 7.1 eingeführt wurde. Um einen nspawn-Container zu erstellen, muss der systemd-nspawn@.service aktiviert sein, der in einer dedizierten Umgebung läuft, in der der Container-Service gestartet wird. Um dies durchzuführen benötigt man den folgenden Befehl:

yum -y --releasever=7Server --installroot=/var/lib/container/minirhel7 install systemd passwd yum redhat-release-minimal

Als nächstes muss nspawn für das konkrete Verzeichnis eingerichtet werden, beispielsweise mit dem folgenden Befehl:

systemd-nspawn -D /var/lib/container/minirhel7

Damit ist das Fundament gelegt und die Container-Umgebung eingerichtet, von der aus man Befehle wie passwd ausführen kann, um zum Beispiel das Root-Passwort festzulegen.

Die große Frage lautet hierbei natürlich, ob man systemd wirklich zum Management von Linux-Containern braucht, wenn es doch bereits so viele andere Container-Tools gibt. Allerdings darf bezweifelt werden, dass der ideale Ansatz zum Container-Management bereits gefunden ist. Docker hat in der letzten Zeit enorm viel Aufmerksamkeit bekommen, aber hier fehlt ganz einfach die Möglichkeit der vernünftigen Integration in OpenStack-Umgebungen. Von Ubuntu kommt eine andere Alternative, die sich auf das LXD-Projekt stützt, aber auch hier ist die finale Antwort noch nicht gefunden.

In der derzeitigen IT-Landschaft, in der der optimale Ansatz noch nicht gefunden ist, erscheint es durchaus sinnvoll, auch systemd einen Versuch zuzugestehen. Letztendlich nimmt sich systemd bereits aller Komponenten an, die für die Erstellung von Containern nötig sind, warum also dieses Potenzial nicht einfach auch zum Container-Management nutzen?

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im September 2015 aktualisiert

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close