Open Source im professionellen Einsatz
Linux-Magazin 11/2015
© Anna Khomulo, 123RF

© Anna Khomulo, 123RF

Neue Container-Lösungen für Linux

Die jungen Wilden

Cgroups und Namespaces sind unter Linux das Nonplusultra, wenn es um Container-Technologien geht. Deshalb fußen auch gleich mehrere ganz neue Ansätze auf dieser Technik. Und alle versprechen eine Fülle nie gesehener Vorteile. Was ist dran?

865

Seit Docker das Tagesgespräch dominiert, sagen nicht wenige Beobachter der Virtualisierung mit KVM oder Xen sinkende Nutzerzahlen voraus. Ob diese Prophezeiung eintritt, wird sich erst mit der Zeit zeigen. Auf jeden Fall haben Container gute Argumente auf ihrer Seite. Beispielsweise spricht die hohe Dichte virtueller Umgebungen auf dem Virtualisierungs-Host für sie. Im direkten Vergleich mit Vollvirtualisierern haben hier Container klar die Nase vorn.

Mit steigendem kommerziellen Interesse an Containern ist auch die Zahl der auf dem Markt verfügbaren Lösungen kontinuierlich gewachsen: Anfangs stritten LXC und Docker um die Gunst der Nutzer. Mittlerweile bietet VMware einen eigenen Container-Ansatz (Photon), ebenso Core OS, das sich von Docker losgesagt hat. Canonical führt in Form von LXD ein drittes Produkt ins Feld und auch Docker selbst will mitreden.

Für den Admin ist auf den ersten Blick also gar nicht erkennbar, auf welche Lösung er für seine Einsatzbereiche setzen soll. Das Linux-Magazin gibt einen Überblick über die neuesten Ansätze und erklärt, welcher am besten zu welchem Einsatzzweck passt.

Der Klassenprimus: Docker

Dass Docker ([1], Abbildung 1) in der Riege der "jungen Wilden" genauso mitspielt wie bei den etablierten Lösungen, ist leicht zu erklären: Keine andere Container-Lösung hat in den vergangenen Jahren so viel Aufmerksamkeit auf sich gezogen. Bei keiner ist das Wachstum an Features so rasant. Und keine andere Lösung hat in so kurzer Zeit so viele Kritiker auf sich gezogen wie Docker. Rocket, LXD und Photon OS nehmen ausdrücklich jeweils für sich in Anspruch, ganz anders zu sein als Docker.

Abbildung 1: Docker ist der Klassenprimus in Sachen Container, doch mittlerweile auch viel mehr als ein einfacher Container-Standard.

Technisch betrachtet fallen bei Docker gleich mehrere Details auf. Da ist zunächst der Umstand, dass Docker mittlerweile den Betrieb von Containern mit einer eigenen Bibliothek abwickelt, der Libcontainer. Die war nicht von Anfang an Bestandteil der Lösung; bis Version 0.9 setzte Docker direkt auf LXC, um Container zu starten und zu verwalten. Dass man sich dennoch für eine eigene Container-Plattform entschieden hat, lag am Fehlen verschiedener Features auf Seiten von LXC. Libcontainer dokumentiert im Grunde den Projekt-Anspruch, ein universelles Container-Format für Linux zu schaffen, an das sich andere Lösungen anhängen können.

Der zweite wichtige Punkt bei Docker besteht darin, dass es die alleinige Herrschaft über die Container für sich beansprucht. Auf jedem Host läuft ein eigener Docker-Dienst, dessen Kindprozesse die Container sind. Will der Admin einen Docker-Container starten, setzt er einen entsprechenden CLI-Befehl ab, der beim Docker-Daemon auf dem jeweiligen Host landet. Der Docker-Daemon startet den Container, sorgt dafür, dass er wie gewünscht läuft, und ist schließlich auch dafür verantwortlich, den Container auf Zuruf des Admin zu löschen.

Docker-Fans halten gerade dieses umfassende Lifecycle-Management für eine Schlüsselqualifikation. Sobald auf einem Host die Docker-Binaries installiert sind, kann es losgehen. Und weil im Netz eine große Menge von Docker-Containern verfügbar ist, dauert es bis zum ersten laufenden Container nicht lange.

Damit kommt Docker heute hauptsächlich dort zum Einsatz, wo es darum geht, fertige Container mit vorinstallierter Software im Stile von PaaS zu betreiben. Der Entwickler einer Software bietet einen passenden Container an, den der Nutzer runterlädt und startet. Damit ist schon alles getan. Die einzelnen Docker-Komponenten sind dabei so eng miteinander verwoben, dass es für externe Lösungen so gut wie unmöglich ist, sich in den Prozess noch sinnvoll einzuklinken.

Auf der Suche nach Wechselgründen hin zu Docker-Alternativen sticht gerader dieser Punkt hervor. Und liefert die Rechtfertigung für den ersten Probanden im Überblick: Rocket.

Core OS und Rocket

Dass Core OS in die Riege von Container-Anbietern aufsteigen würde, das schien noch vor einem Jahr praktisch undenkbar. Eigentlich widerspricht das auch der Idee, der sich Core OS verpflichtet fühlt: Core OS versteht sich in erster Linie als Werkzeug, um den Betrieb von Containern im Flottenverbund zu organisieren. Container sind ja zunächst an den Host gebunden, auf dem der Nutzer sie gestartet hat.

Dabei fällt der Faktor Cloud praktisch unter den Tisch: Werkzeuge, die das komfortable Starten von mehreren Containern gleichzeitig ermöglichen und die diese Container dann auch gleich auf mehrere Hosts verteilen, sind im Linux-Kernel bislang gar nicht vorgesehen. Selbst Docker enthält bis heute keine Funktion, die so etwas ermöglicht.

Das Core-OS-Projekt ist ein Beispiel für nachgerüstete Cluster-Fähigkeiten bei Containern. Sie bilden damit eine Cloud, die dem Kunden nahezu beliebig viel Kapazität zur Verfügung stellen kann. Und diese Kapazität ist anschließend nach Bedarf abrufbar. Für solche Setups ist Core OS gedacht: Es handelt sich um ein minimales Betriebssystem, das ab Werk nicht sehr viel mehr kann, als Container zu starten – und diese dann im Flottenverbund zu verwalten.

Jeder Core-OS-Host ist also mit genug Intelligenz ausgestattet, um zu wissen, auf welchem Host welcher Container läuft. Will der Admin einen Verbund von Containern starten, um zum Beispiel per Mausklick eine komplette IaaS-Webserver-Farm aus dem Boden zu stampfen, so eilt Core OS mit den passenden Werkzeugen zu Hilfe. Tools wie Etcd, Fleetd und viele andere bringen dann die Container in die Cloud.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • VMware veröffentlicht Container-Linux Photon

    VMware veröffentlicht mit Photon ein eigenes, leichtgewichtiges Linux, das als Unterbau für Cloudanwendungen dienen soll und verschiedene Containerformate unterstützt. Ergänzend soll ein zweites Open-Source-Projekt namens Lightwave Identity- und Access-Management für Unternehmen ermöglichen.

  • Core OS startet Docker-Alternative

    Leicht verschnupft reagiert Ben Golub, CEO des Docker-Projekts, auf eine Ankündigung der Core-OS-Entwickler, mit Rocket eine eigene Container App zu schaffen, weil Docker sein ursprüngliches Ziel aus den Augen verliere.

  • LXD

    Während der Docker-Hype schon wieder abzuklingen scheint, haben sich gleich mehrere Container-Alternativen in Marsch gesetzt und hoffen auf Landgewinne. Darunter ist Canonicals Container-Ansatz LXD, entworfen mit Open Stack im Blick.

  • Core OS bringt Docker-Konkurrent Rkt 1.0

    Das Core OS-Team hat seine Container-Runtime Rkt in Version 1.0 veröffentlicht. Core OS versteht seine Lösung als auf Sicherheit getrimmte Alternative zu Docker.

  • Saltstack baut Docker-Unterstützung aus

    Das jüngste Saltstack-Release namens "Helium" baut die Unterstützung für die Containervirtualisierung Docker aus.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.