Test: Die besten Linux-Distributionen für Docker und Container

In den letzten sechs Monaten habe ich fünf minimale Linux-Distributionen überprüft, die für die Ausführung von Containern optimiert sind: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host und VMware Photon OS. Diese abgespeckten, speziell entwickelten Linux-Distributionen, die allgemein als „Container-Betriebssysteme“ bezeichnet werden, sind nicht die einzige Möglichkeit, Container in der Produktion auszuführen, sondern bieten eine Basis, die keine Ressourcen außer der Container-Unterstützung verschwendet.

Der Stand der Branche mit Container-Bereitstellungssystemen ähnelt stark den Anfängen von Linux-Distributionen. Sie haben ein Schlüsselelement, in diesem Fall den Docker-Container, der von einer Reihe konkurrierender Ökosystemkomponenten umgeben ist. So wie die traditionellen Linux-Distributionen verschiedene Paketmanager, Desktop-Umgebungen, Systemdienstprogramme, Dienste und Apps gebündelt haben, kombinieren die meisten Container-Distributionen verschiedene Komponenten, um eine für sie optimale Lösung zu erstellen. Nehmen Sie zum Beispiel die verteilte Konfiguration und Serviceerkennung. Hierfür gibt es verschiedene Lösungen wie Etcd, Consul und ZooKeeper.

Jede Distribution verfolgt einen anderen Ansatz, was in den Stapel aufgenommen werden soll. In einem Extremfall gibt es Distributionen, die nur die höheren Ebenen des Stacks unterstützen, wie z. B. CoreOS Container Linux und Red Hat Project Atomic. Ein Großteil der Funktionen wurde in die proprietäre Verwaltungsebene integriert, sodass kaum Hoffnung besteht, das Betriebssystem für andere Zwecke zu verwenden. Andere Distributionen wie RancherOS und VMware Photon OS bieten mehr Flexibilität und unterstützen mehrere Ökosystemkomponenten und Orchestrierungssysteme. Diese bieten Administratoren eine gute Möglichkeit zum Experimentieren und vermeiden möglicherweise die Lieferantenbindung.

Alpines Linux

Alpine Linux, das zugrunde liegende Betriebssystem für viele offizielle Docker-Images, ist eine gute Wahl für diese Aufgabe. Alpine Linux ist nur fünf Megabyte groß und befindet sich am anderen Ende des Spektrums als die Vollfett-Linux-Distributionen von vor einigen Jahren, die mit Solaris konkurrierten und auf massiven Hardwaresystemen laufen sollten. Diese neue Linux-Generation wurde für die Ausführung auf eingebetteter Hardware entwickelt und verbraucht nur minimale Ressourcen. Dies macht sie zur perfekten Wahl für Container.

Das Erbe von Alpine Linux als Betriebssystem für eingebettete Systeme wurde bei meiner Überprüfung deutlich. Viele der Konfigurationsoptionen gelten standardmäßig für eingebettete Systeme, und die Dokumentation in vielen Bereichen war spärlich oder nicht vorhanden. Alpine Linux ist eindeutig ein System, das für Hacker entwickelt wurde und hauptsächlich von Hackern verwendet wird. Unternehmen müssen einige Hürden überwinden, um ihre Anwendungen zu erstellen.

Produktionsbereitstellungen von Alpine Linux bieten mehrere Vorteile, darunter einen schnellen Start, einen minimalistischen Platzbedarf und eine standardmäßig sichere Haltung, die anderswo nicht zu finden ist. Von den Systembinärdateien bis zu den C-Bibliotheken ist alles für kleine, schnelle und sichere Bereitstellungen ausgelegt. Hier gibt es kein Aufblähen.

Die Verwaltung von Alpine Linux unterscheidet sich von herkömmlichen Linux-Systemen und es wird einige Zeit dauern, bis Sie sich damit vertraut gemacht haben. Installation und Paketverwaltung sind selbst unter den Container-Betriebssystemen einzigartig, wenn auch gut durchdacht. Wenn Ihr Entwicklungs-Shop überdurchschnittliche Entwickler hat, die bereit sind, die Investition zu tätigen, bietet Alpine Linux für lange Zeit eine solide, stabile und sichere Basis für Anwendungen.

CoreOS Container Linux

Der CoreOS-Container-Stack verwendet Etcd für die verteilte Speicher- und Serviceerkennung, Flannel für das Netzwerk und Kubernetes für die Container-Orchestrierung und unterstützt neben Docker auch die eigene Version des Containerformats rkt (Rocket). Rocket war ein Versuch eines konkurrierenden Containerformats, um Mängel im Docker-Format um 2015 zu beheben, aber mit diesen behobenen Mängeln hat Rocket nicht viel Akzeptanz gefunden.

In Verbindung stehendes Video: Was ist Kubernetes?

In diesem 90-Sekunden-Video erfahren Sie mehr über Kubernetes, das Open-Source-System zur Automatisierung von Containeranwendungen, von einem der Erfinder der Technologie, Joe Beda, Gründer und CTO bei Heptio.

CoreOS hat wie Project Atomic keine Angst davor, radikal von herkömmlichem Linux abzuweichen. Wie das Container-Betriebssystem von Red Hat erstellt CoreOS Container Linux ein größtenteils unveränderliches Dateisystem, jedoch mit einem Festplatten-Partitionierungssystem, das vom Chromium-Betriebssystem von Google inspiriert ist. Dadurch bleibt das alte Dateisystem auf einer Partition erhalten, sodass Rollbacks immer sicher und schnell sind.

Obwohl die Dokumentation ziemlich gut und umfassend ist, fand ich die Installation etwas umständlich und umfasste einen zweistufigen Prozess zum Ableiten der Konfigurationsdatei. Nach der Installation bietet CoreOS jedoch kontinuierliche Upgrades ohne Ausfallzeiten. Diese Funktion wird durch das einzigartige Layout der Festplattenpartition ermöglicht. CoreOS hat hier viel Arbeit geleistet, und das Unternehmen bietet verschiedene Wartungsoptionen an, die für fast jedes Unternehmen geeignet sind, einschließlich der Möglichkeit, sich abzumelden.

CoreOS ist ähnlich wie Project Atomic eine Alles-oder-Nichts-Entscheidung. Das Auseinandernehmen der Teile und die Verwendung des zugrunde liegenden Betriebssystems zum Erstellen Ihrer eigenen Containerinfrastruktur ist aufgrund aller in die Plattform eingebrachten architektonischen Entwurfsentscheidungen keine Option. Wenn Sie bereit sind, diese Entscheidungen zu treffen und für die kommerzielle Kubernetes-Distribution von CoreOS, Tectonic, zu bezahlen, könnten Sie zweifellos ernsthafte Anstrengungen unternehmen.

Rancher Labs RancherOS

RancherOS von Rancher Labs ist ein Linux-Betriebssystem, das ausschließlich aus Containern besteht. Auch der Init-Prozess (PID 1) ist ein Docker-Container. Dies bedeutet, dass kein Paketverwaltungssystem erforderlich ist. Betriebssystem-Upgrades (und Downgrades) werden wie jeder andere Container mit Docker verwaltet.

Obwohl dieser Ansatz ebenso radikal ist wie die Architekturentscheidungen, die in einigen anderen Distributionen wie Project Atomic und CoreOS getroffen wurden, ist das Ergebnis eine überraschende Einfachheit. Obwohl das Erlernen einer völlig neuen Systemadministration zunächst entmutigend erscheint, müssen Sie Docker kennen, um Container zu verwalten. Warum also nicht dasselbe System für beide verwenden?

RancherOS scheint schnell zu reifen. In meiner Überprüfung fand ich die Dokumentation etwas mangelhaft, aber jeder Entwickler oder Administrator, der mit Docker-Containern vertraut ist, kennt den größten Teil des Systems bereits. RancherOS hat einen geringen Platzbedarf (20 MB) und nutzt Ressourcen effizient. Obwohl die Grenzen zwischen Rancher, dem Containerverwaltungssystem, und Rancher, dem Betriebssystem, etwas verschwommen sind, ist das Containerverwaltungssystem kostenlos und Open Source, sodass es keinen Grund gibt, zu versuchen, Ihr eigenes zu rollen. Organisationen, die Zugriff auf den Quellcode benötigen, sollten nicht weiter suchen.

Die Rancher-Plattform unterstützt nahezu das gesamte Ökosystem von Tools für das Containermanagement, einschließlich Docker Swarm, Kubernetes und Mesos, und entwickelt sich rasant weiter. Obwohl RancherOS sich grundlegend von herkömmlichem UNIX unterscheidet, scheint es sich stärker an die grundlegende UNIX-Philosophie gehalten zu haben als die anderen Container-Betriebssystem-Distributionen: Einfache Tools, die auf elegante Weise zusammenarbeiten.

Red Hat Project Atomic

Red Hats Projekt Atomic ist fest im Kubernetes Camp of Service Orchestration verankert. In der Regel ist diese Art der Bereitstellung auf umfangreiche, hochverfügbare Szenarien ausgerichtet. Der Nachteil ist, dass Sie im Wesentlichen „tun müssen, was Ihnen gesagt wurde“ und die Anwendung gemäß Konvention entwerfen müssen.

In der Box finden Sie Flannel für das Netzwerk, Etcd für die verteilte Speicherung von Schlüsselwerten und OSTree für die Hostverwaltung. OSTree ist eine relativ neue Methode, um ein Betriebssystem zuverlässig und verteilt in großem Maßstab bereitzustellen. Atomic kombiniert OSTree mit einem neuen RPM-Paketmanager, um RPM-OSTree zu erstellen, das ein größtenteils unveränderliches Dateisystem liefert.

Ich fand Project Atomic eine Herausforderung. Es ist sehr ehrgeizig und bewegt sich schnell, mit vielen beweglichen Teilen. RHEL, CentOS, Fedora, SELinux, Systemd, ein benutzerdefinierter Docker-Befehlssatz zur Steuerung des zugrunde liegenden Hosts. Sie sind alle in der Mischung enthalten, und die Dokumentation ist unorganisiert und verwirrend. Außerdem musste ich in meinem kleinen Cluster ohne Chef, Salt oder Puppet jeden Knoten manuell konfigurieren.

Unter dem Strich braucht Project Atomic noch etwas Zeit zum Backen. Wenn die Vision verwirklicht wird, wird sie möglicherweise zum Standard der Zukunft - allerdings nicht für Rechenzentren mit Hunderten von Knoten, sondern für Tausende oder Zehntausende. In dieser Hinsicht scheint die Vision der von Mesos näher zu sein als ein typisches Container-Bereitstellungssystem. Wenn Ihr Unternehmen das Red Hat-Ökosystem lebt und atmet und plant, dort zu bleiben, lohnt es sich wahrscheinlich, mit Project Atomic zu beginnen.

VMware Photon OS

Das Photon-Betriebssystem von VMware ist ein minimaler Linux-Container-Host, der für einen geringen Platzbedarf ausgelegt und auf VMware-Hypervisoren abgestimmt ist. Daher läuft Photon OS nur in virtuellen Umgebungen. Eine Bereitstellung auf physischer Hardware ist nicht möglich. Photon OS wurde angepasst, um die Containerverwaltung zu vereinfachen, jedoch nicht so radikal wie Atomic oder CoreOS. Photon OS ist eher ein Evolutionsschritt.

Basierend auf meinen Tests hält Photo OS seine Versprechen in der virtuellen VMware-Umgebung ein. (Photon OS kann auch auf anderen Hypervisoren sowie in den Clouds von Google und Amazon ausgeführt werden.) Da Photon OS Annahmen über die Hardware (virtuell) treffen kann, ähnelt das Ökosystem Standard-Linux, wodurch die Lernkurve weniger steil wird. Netzwerk und Speicher sind Systemd-kompatibel, und es gibt eine Reihe von Optionen, die für das Containernetzwerk dokumentiert sind. Die Dokumentation für Photon OS ist möglicherweise die beste unter den getesteten Produkten.

VMware übernimmt die Führung bei der Produktion von Containern für herkömmliche Umgebungen. Dies ist sinnvoll, wenn Sie darüber nachdenken. Wie oft wurden Sie gebeten, den Unterschied zwischen einem Container und einer VM zu beschreiben? Mit Photon OS wird es bald keinen Unterschied mehr geben: Container werden nur eine leichte VM sein, die mit denselben Tools bereitgestellt und verwaltet wird. Photon OS unterstützt praktisch alle wichtigen Teile des Container-Ökosystems: Docker- und Rocket-Container, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 und mehr.

Von allen von mir getesteten Distributionen scheint VMware Photon OS sowohl das visionärste als auch das derzeit vollständigste und benutzerfreundlichste zu sein. Wenn Sie ein VMware-Shop sind, der sich mit Containerisierung befasst, würde ich an nichts anderes denken. Wenn Sie kein VMware-Shop sind, ist Photon OS immer noch einen guten Blick wert.

Vergleich von Container-Betriebssystemen

Alpine Linux untermauert fast jedes Docker-Image. Alpine Linux ist perfekt für eingebettete Anwendungen geeignet und sollte nicht als eine Möglichkeit zum Ausführen von Containern angesehen werden. Stattdessen wird in einer Art und Weise, Alpine Linux ist der Behälter. Entwickler, die mit dem Erstellen von Anwendungen unter Alpine Linux vertraut sind, schreiben bessere Containeranwendungen.

CoreOS, eines der frühen Container-Betriebssysteme, übernimmt den Google-Technologie-Stack. Es bietet eine zuverlässige, wenn auch einfühlsame Möglichkeit zur Verwaltung der Containerinfrastruktur. Während CoreOS viele der Komponenten als Open Source zur Verfügung stellt, bedeutet die Komplexität des Lernens eines so großen Stacks, dass Benutzer das proprietäre Techtonic-Orchestrierungssystem für Produktionsbereitstellungen erwerben müssen. Wenn Geld keine Rolle spielt und Sie Anwendungen in Google-Größe bereitstellen müssen, ist CoreOS eine logische Wahl.

RancherOS ist reine Container. Wenn Sie Ihre eigene Containerinfrastruktur rollen oder einen minimalen Containerverwaltungsstapel wünschen, ist RancherOS der richtige Ausgangspunkt. Mit Open Source-Orchestrierungs- und Planungstools wie Docker Swarm, Kubernetes und Mesos, die alle frei verfügbar sind, spricht der Rancher-Stack Open Source-orientierte Do-it-yourself-Unternehmen an.

Red Hats Project Atomic ist ein Dachprojekt, das die Art und Weise, wie Unternehmen Infrastruktur bereitstellen, neu gestaltet. Dieses ehrgeizige Projekt könnte die Art und Weise verändern, wie Unternehmen über die Bereitstellung von Anwendungen denken, aber der Weg ist lang. Project Atomic eignet sich am besten für Early Adopters mit einer großen Investition in Red Hat-Technologien.

Das Photon-Betriebssystem von VMware bringt die Verwaltungstechnologie und -erfahrung dieses Anbieters für virtuelle Maschinen in Container. Photon OS wird als virtuelle Maschine bereitgestellt und mit herkömmlichen VM-Tools verwaltet. VMware, das vielleicht die Schrift für traditionelle VMs an der Wand sieht, hat sich voll und ganz der Containertechnologie verschrieben und treibt den Stand der Technik rasch voran. Wenn Sie jetzt ein VMware-Shop sind, werden Sie kaum eine bessere Containerplattform als Photon OS finden.

Lesen Sie die Linux-Bewertungen des Containers: 

  • Test: Alpine Linux wurde für Docker entwickelt
  • CoreOS-Test: Linux für Container und Kubernetes
  • RancherOS: Ein einfacheres Linux für Docker-Liebhaber
  • Kritik: Red Hat macht Docker auf die harte Tour
  • Test: Das Photon-Betriebssystem von VMware glänzt für Docker-Container