Linux für Container: Fedora CoreOS in einer ersten Preview-Version

Container-Fans können die Linux-Distribution, die mittelfristig CoreOS Container Linux und Fedora Atomic Host ablösen soll, jetzt als Preview-Release testen.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Linux für Container: Fedora CoreOS liegt in einer ersten Preview-Version vor

(Bild: Fedora / Screenshot (Collage))

Lesezeit: 8 Min.
Von
  • Tim Schürmann
Inhaltsverzeichnis

Das Fedora-Projekt werkelt gerade an einer neuen Distribution, die als schlankes Gastsystem für Container dienen soll. Das Fedora CoreOS getaufte System soll besonders sicher, zuverlässig und komplett wartungsfrei arbeiten. Es löst zudem mittelfristig CoreOS Container Linux und Fedora Atomic Host ab.

Seit vergangener Woche können Interessenten die neue Distribution in einer ersten Vorabversion selbst ausprobieren. Sie liegt ausschließlich in einer 64-Bit-Version für die x86-Architektur vor. Aktuell läuft sie auf echter Hardware, in Amazons AWS-Cloud, auf OpenStack sowie in einer virtuellen Maschine unter Qemu oder VMWare. Weitere Plattformen sollen in den kommenden Monaten folgen.

Die Entwickler stellen für alle Plattformen passende Installationsmedien und fertige virtuelle Maschinen bereit. Darüber hinaus ist auch eine Installation über PXE und damit über das Netzwerk möglich. Trotz der vielen vorgefertigten Images ist die Inbetriebnahme allerdings nicht ganz so trivial wie es auf den ersten Blick scheint.

Fedora CoreOS selbst besteht aus einem standardisierten minimalen Linux-System mit einem Minimum an notwendigen Diensten, so wie etwa einem SSH-Server für den Remote-Zugriff. Beim ersten Start von Fedora CoreOS übernimmt das Werkzeug Ignition direkt die automatisierte Konfiguration und Einrichtung des Systems. Dazu liest es eine Konfigurationsdatei ein, die es zuvor etwa aus einer Cloud holt oder über eine URL abruft. Anhand der darin befindlichen Beschreibung richtet Ignition die Festplattenpartitionen ein, legt Benutzerkonten an und erstellt Systemd-Units. In der Vorabversion von Fedora Core kann Ignition mit Konfigurationsdateien umgehen, die der Inginition-Spezifikation 3.0.0 folgen.

Die Konfigurationsdatei für Ignition erstellen Fedora-CoreOS-Anwender allerdings nicht manuell, sondern über einen mehrstufigen Prozess: Zunächst erzeugen sie dabei eine Konfigurationsdatei im Fedora-CoreOS-Config-Format, kurz: FCC-Datei. Dahinter verbirgt sich ein Dokument im YAML-Format, das die gewünschte Konfiguration der entsprechenden Maschine beschreibt. Den Aufbau der Konfigurationsdatei haben die Entwickler auf GitHub dokumentiert. Aus der fertigen FCC-Datei erzeugt der so genannte Fedora CoreOS Config Transpiler eine Konfigurationsdatei für Ignition. Erst diese verfüttert man abschließend an die startende Maschine mit Fedora CoreOS.

Auf dem installierten System zünden Podman und Moby die benötigten Container. Beide Werkzeuge sind zu Docker kompatibel, das ebenfalls mit an Bord ist. Um die Sicherheit kümmert sich im Hintergrund SELinux.

Die Fedora-Entwickler haben ihr System konsequent als "Immutable Infrastructure" ausgelegt, die sich komplett selbst wartet und verwaltet. Nach der automatischen Einrichtung darf der Administrator daher nicht mehr in das laufende Fedora CoreOS eingreifen und darin insbesondere keine Einstellungen ändern. Wer seine Installation anpassen möchte, muss die FCC-Datei ändern und damit dann eine neue Maschine einrichten. Das Vorgehen erinnert an einen Container, bei dem man ebenfalls einfach ein altes Exemplar durch ein neues ersetzt.

Dazu gehört auch, dass Fedora CoreOS selbstständig Aktualisierungen herunterlädt und einspielt. Um die automatischen Updates kümmern sich Zincati und vor allem „rpm-ostree“. Die Entwickler gehen zudem laut Ankündigung zu Fedora CoreOS davon aus, dass die später auf dem System betriebenen Container auf mehreren Knoten laufen und redundant ausgelegt sind. Fedora CoreOS startet daher einfach das System automatisch neu, sofern eine Aktualisierung dies erfordert.

Damit eine fehlerhafte Systemaktualisierung nicht das System zerstören kann, verwenden die Fedora-Macher eine mehrstufige Strategie, die ein wenig der des Debian-Projekts ähnelt: Im sogenannten Next-Stream bieten die Entwickler immer die kommende Fedora CoreOS-Version an. Der Testing-Stream enthält die aktuelle Fedora CoreOS-Version mit allen in Kürze erscheinenden Updates. Die Version im Testing-Stream bleibt dort zur Prüfung zwei Wochen liegen. Dies soll den Entwickler Zeit geben, alle noch in der letzten Minute entdeckten Fehler auszumerzen. Erst danach landet die aktualisierte Fassung im Stable-Stream. Alle drei Streams erhalten immer umgehend Sicherheitsupdates und kritische Bugfixes.

Sämtliche Fassungen aus den Streams sollen sich grundsätzlich (ab Freigabe des ersten Stable-Releases der neuen Distribution) für den produktiven Betrieb eignen. Die Entwickler empfehlen jedoch den Einsatz der Variante aus dem Stable-Stream, da diese die meisten Tests über sich ergehen lassen musste. Derzeit existiert allerdings nur der Testing-Stream, in dem die aktuelle Fedora CoreOS-Version liegt.

Im Download-Bereich für Fedora CoreOS finden Interessenten fertige Installationsmedien und virtuelle Maschinen. Die Images belegen entpackt zwischen 620 MByte und 1,5 GByte auf der Festplatte. Fedora CoreOS lässt sich zwar via PXE oder aus dem ISO-Image auch als Live-System starten, diese Betriebsmöglichkeit unterstützen die Entwickler jedoch derzeit noch nicht.

Für einen ersten schnellen Testlauf können Linux-Nutzer zum Qemu-Image greifen. Dazu laden sie sich aus dem Download-Bereich das Qemu-Image herunter und entpacken es auf der Festplatte. Das Ergebnis ist ein rund 1,5 GByte großes QCOW2-Image. Das darin enthaltene Fedora CoreOS fährt dann folgender Befehl hoch, wobei „fedora-coreos-qemu.qcow2“ für den Dateinamen des QCOW2-Images steht:

qemu-system-x86_64 -machine accel=kvm -m 2048 -cpu host -nographic -drive if=virtio,file=./fedora-coreos-qemu.qcow2 -device virtio-rng-pci -fw_cfg name=opt/com.coreos/config,file=./ignition-config.ign

Das kryptische Monster schiebt der virtuellen Maschine die Konfiugrationsdatei „ignition-config.ign“ unter, die im aktuellen Verzeichnis liegen muss. Ihr Inhalt kann für einen ersten Test wie folgt aussehen:

{"ignition":{"config":{"replace":{"source":null,"verification":{}}},"security":{"tls":{}},"timeouts":{},"version":"3.0.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":["ssh-rsa ssh-rsa ABCDEFG12345"]}]},"storage":{},"systemd":{}}

Diese Konfiguration erstellt einen Benutzer namens „core“, der den SSH-Schlüssel „ABCDEFG12345“ besitzt.

Die derzeit bereitstehende Preview-Version ist explizit nicht für den produktiven Einsatz freigegeben, die Inbetriebnahme erfolgt daher auf eigene Gefahr. Die Entwickler weisen zudem darauf hin, dass sich im Laufe der nächsten Zeit noch einige inkompatible Änderungen ergeben könnten.

Eine erste stabile Version von Fedora CoreOS soll in rund sechs Monaten erscheinen. Die Dokumentation zu Fedora CoreOS besteht derzeit noch im Wesentlichen aus einem Getting-StartedGuide. Auch hier wollen die Entwickler in der nächsten Zeit nacharbeiten. Das Fedora-Projekt diskutiert derzeit auch eine engere Integration mit Kubernetes-Distributionen, wie etwa OKD.

Das fertige System soll zudem standardmäßig im Hintergrund den Dienst „fedora-coreos-pinger“ ausführen. Der schickt in regelmäßigen Abständen Telemetriedaten an die Entwickler. Die dabei übertragenen Informationen sollen nach Angaben der Fedora-Entwickler keine Rückschlüsse auf das System enthalten. Unter anderem wandern die Fedora-CoreOS-Version und der Name der Cloud-Platform durch das Netz. Administratoren können den Dienst aber auch abschalten. In der Vorschauversion von Fedora CoreOS ist er von Haus aus deaktiviert.

Fedora CoreOS entstand aus der Zusammenlegung der Distribution Fedora Atomic Host und dem von Red Hat aufgekauften Konkurrenten Container Linux alias CoreOS. Von dort hat die neue Fedora-Distribution unter anderem das Tool Iginition geerbt.

Nach dem Erscheinen der stabilen Fassung von Fedora CoreOS erhält der Vorgänger CoreOS Container Linux noch rund sechs Monate Support. Der genaue Zeitplan für Container-Linux-Nutzer soll zum Jahresende erscheinen. Fedora Atomic Host erhält noch Aktualisierungen bis zum Lebensende von Fedora 29, das im November ansteht. (ovw)