Fedora CoreOS: So stellt sich Fedora die Zukunft des Container-Linux vor
Die erste stabile Version von Fedora CoreOS ist erschienen und soll das perfekte Linux-Wirtssystem für Container darstellen.
![Fedora CoreOS: So stellt sich Fedora die Zukunft des Container-Linux vor](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/8/2/8/4/7/2/coreos-aws-ea7a9bb69767e818.png)
Ein hochverfügbares Container-Linux in unter fünf Minuten: Mit wenigen Klicks kann man Fedora CoreOS über AWS konfigurieren und starten. Nach dem Einloggen per SSH kann man sofort Container installieren.
(Bild: Fabian A. Scherschel)
Nachdem Red Hat den Container-Distro-Spezialisten CoreOS gekauft hatte, kündigte man bald an, das Projekt mit der eigenen Distribution Fedora Atomic Host zusammenführen zu wollen. Diese Anstrengungen sind nun mit dem Erscheinen der ersten fertigen Version von Fedora CoreOS ein ganzes Stück weiter fortgeschritten.
Die neue Fedora-Edition basiert auf der aktuellen Version 31 der Distribution mit Linux-Kernel 5.4 und systemd 243. Zum Booten und Konfigurieren der Fedora-CoreOS-Images wird das hauseigene Werkzeug Ignition verwendet. CoreOS kann virtualisiert in VMware, OpenStack und QEMU oder altmodisch direkt auf blanker Hardware installiert werden. Cloud-Images für AWS, Azure, Google Cloud Platform und Alibaba gibt es ebenfalls.
Fedora CoreOS soll als möglichst abgespecktes Wirtssystem für Software-Container (Docker und OCI) bilden, die mit Podman oder Moby installiert und verwaltet werden können. Vom Vorgänger Fedora Atomic Host übernimmt die Distribution ihren Fokus auf Sicherheit und Stabilität. Das gesamte System ist mit strikten SELinux-Regeln gegen Angriffe gehärtet und misslungene Updates oder andere fehlerhafte Paket-Installationen können via rpm-ostree im Ernstfall rückgängig gemacht werden. Eine Fedora-CoreOS-Installation soll komplett wartungsfrei betrieben werden können und versorgt sich selbst mit den nötigen Sicherheitsupdates. Um mögliche Datenverluste durch ungeplante Neustarts des Systems zu verhindern, kann der Cluster-Administrator allerdings in diesen Prozess eingreifen und Neustarts zentral für mehrere Systeme steuern.
Konfiguration mit Ignition
Eine Fedora-CoreOS-Installation besteht aus einem möglichst klein gehaltenen Linux-System mit dem absoluten Minimum an Diensten, die für den Betrieb benötigt werden. Beim ersten Booten des Betriebssystem-Images liest das Konfigurations-Tool Ignition eine Konfigurations-Datei aus und richtet an Hand dieser Vorgaben das System ein. So werden Datenträger-Partitionen definiert, Benutzer angelegt und Rechte vergeben. Die Konfigurations-Datei kann etwa aus dem Netz abgerufen oder vom Cloud-Provider bereitgestellt werden. Die darin enthaltenen Parameter sagen Ignition unter anderem, wie das unterliegende System beschaffen ist und müssen in der Cloud an die entsprechende Installationsumgebung angepasst werden.
Bei Amazons Cloud-Dienst AWS etwa, enthalten die AMI-Pakete diese Konfiguration zusammen mit dem eigentlichen Betriebssystem-Image und können so mit einem Klick installiert werden. Wer Fedora CoreOS auf der eigenen Hardware oder auf einem selbst verwalteten Hypervisor installieren will, muss sich die Ignition-Konfiguration selbst zusammenschrauben. Dazu erstellt man eine YAML-Datei namens Fedora CoreOS Configuration (FCC) und formatiert diese in eine JSON-Datei um – das übernimmt ein Kommandozeilen-Werkzeug namens fcct. In der FCC-Datei muss als absolutes Minimum ein Benutzer mit passendem SSH-Schlüssel genannt werden, damit man sich später an der CoreOS-Installation anmelden kann. Cloud Provider fragen bei der Installation einen SSH-Schlüssel ab oder erzeugen einen neuen und erstellen dann ad hoc eine FCC-Datei für das zu bootende CoreOS-Image.
Neben Benutzer-Informationen und Storage-Konfiguration kann die Ignition-Datei aber auch Verzeichnisse, Dateien und deren Inhalt spezifizieren. So kann der Nutzer weitere Konfigurationen direkt bei Installation mit auf das System bringen. Der Inhalt der Dateien kann etwa direkt in die Ignition-Konfiguration geschrieben oder von einer angegebenen URL heruntergeladen werden. Sobald das System läuft kann man sich per SSH unter Verwendung des konfigurierten Schlüssels anmelden. Nun können mit Podman oder Moby – je nach persönlicher Vorliebe – beliebige Container installiert werden. Fedora CoreOS ist mit Docker und der Spezifikation der Open Container Initiative kompatibel. CoreOS kann als einzelne Installation betrieben werden, lässt sich aber auch mit Hilfe von Kubernetes verwalten.
Bereit für den täglichen Einsatz
Laut der Fedora-Entwickler ist die jetzt veröffentlichte CoreOS-Version bereit für den Produktiv-Einsatz. Im Gegensatz zu Red Hat CoreOS, der Enterprise-Variante des Projekts die explizit als OpenShift-Gastsystem ausgelegt ist, sprechen die Entwickler mit der Fedora-Version ein breiteres Publikum an. Wie bei Fedora üblich, geben sie keinerlei Garantien darüber ab, wie verlässlich das System ist. Schließlich handelt es sich beim Fedora-Projekt auch um eine Art Teststrecke, auf der neue Ideen für die Enterprise-orientierten Produkte von Red Hat ausprobiert werden. Gerade die automatischen Updates könnten dazu führen, dass ab und zu Dinge kaputt gehen, warnen die Entwickler.
Eine Installation von Fedora CoreOS ist, vor allem in der Cloud, ziemlich einfach. Auf der Download-Seite des Projekts finden sich neben Image-Downloads zum Beispiel Links zu AMIs für die verschiedenen AWS-Rechenzentren. Mit wenigen Klicks wählt man ein passendes Cloud-System aus, Konfiguriert die Hardware, lädt optional eine Ignition-Konfiguration hoch und legt einen SSH-Schlüssel an. In unter fünf Minuten erhält man so ein laufendes CoreOS-System in das man sich per SSH einloggen und dann sofort Container installieren kann.
Container-Philosophie fürs Container-Linux
Die Container-Philosophie erstreckt sich bei Fedora CoreOS auch auf das Betriebssystem selbst. Da sich das System selbst warten soll und dem Admin die Verantwortung für die zeitnahe Installation von Sicherheitsupdates abnimmt, darf dieser auch gar nicht mehr in die Systemkonfiguration eingreifen – seine Änderungen könnten schließlich mit späteren automatischen Wartungsarbeiten kollidieren. Wer die Systemkonfiguration ändern will, muss die Ignition-Konfigurationsdatei anpassen und damit ein neues CoreOS-Image installieren. Wie bei einem Container also, den man durch eine neue Version ersetzt statt ihn groß zu modifizieren.
Updates für CoreOS werden in einem dreistufigen Prozess getestet: Neue Paketversionen landen zuerst im sogenannten Next Stream, der etwa dem Unstable-Zweig bei Debian entspricht und fortlaufend den aktuellen Entwicklungsstand von Fedora CoreOS widerspiegelt. Im sogenannten Testing Stream sammeln die Entwickler dann kommende Updates für die aktuelle Version des Betriebssystems. Diese Updates werden von den Testing-Teilnehmern installiert und eine Weile beobachtet, bevor sie schließlich im Stable Stream landen. Neu installierte CoreOS-Images versorgen sich in der Regel aus diesem stabilen Zweig mit Software-Updates. Sicherheitsupdates sollen in allen drei Streams zeitgleich veröffentlicht werden.
Alle an Bord, der Hypetrain verlässt den Bahnhof
Nutzer von Fedora Atomic Host sollten zeitnah auf Fedora CoreOS umsteigen, da Atomic Host von den Fedora-Entwicklern nicht mehr mit Software-Updates unterstützt wird. Sowohl für den Umstieg von Fedora Atomic Host als auch von CoreOS Container Linux empfehlen die Entwickler ein komplett neues Fedora-CoreOS-Image zu konfigurieren und dazugehörige Cloud-Konfigurationen entsprechend anzupassen.
Hilfe beim Ein- oder Umstieg liefert das (englischsprachige) Dokumentations-Portal zu CoreOS. Allerdings lässt der Umfang und die Qualität der Dokumentation an vielen Stellen noch zu wünschen übrig. Auch im sonstigen Web wird man bei der Suche nach der einen oder anderen Problemlösung oft noch nicht fündig – wahrscheinlich ist Fedora CoreOS einfach noch zu neu. Anfänger, die noch relativ frisch im Red-Hat-Ökosystem unterwegs sind, müssen deswegen vor allem zu Anfang noch ziemlich frustrationstolerant sein. Als absolute Einsteiger-Distro in die wunderbare neue Welt der hochverfügbaren, sicheren und flexiblen Container-Gastsysteme eignet sich Fedora CoreOS deswegen kaum. Fairerweise muss man sagen, dass die Entwickler ihren Fokus aber wohl auch nicht auf diese Anwender-Zielgruppe legen.
Update 21.01.20, 16:39: Kleinere inhaltliche Korrekturen (u.a. Gast- in Wirtssystem geändert). (fab)