Tooltime

8 Containertools im Vergleich: Docker – Kubernetes – Rkt – Mesos – Packer –Shipyard – CloudSlang – Linux Container

Dominik Mohilo

©Shutterstock / Grzegorz Petrykowski

Die virtuelle Maschine hat ausgedient. Jedenfalls könnte man das glauben, wenn man bedenkt, welcher Hype um die Container-Technologie gemacht wird. Egal, ob Docker, Kubernetes oder Linux Containers – es gibt mittlerweile eine Vielzahl an Möglichkeiten. Wir stellen 8 Softwarelösungen bzw. -tools vor.

Docker

docker quadratisch
Hersteller: Docker, Inc.
Lizenz: Open Source / Business-Pläne für CaaS und Docker Cloud
Aktuelle Version: 1.11
Link: https://www.docker.com
Mit dem Open-Source-Projekt Docker wurde ein neuer Hype in Sachen Container-Technologie gestartet. Docker-Container verbindet ein Stück Software mit einem kompletten Dateisystem, das alles beinhaltet, was die besagte Software zum Laufen benötigt: den Sourcecode, eine Laufzeitumgebung, Systembibliotheken und Systemtools. So wird sichergestellt, dass die Software immer so läuft, wie es gewünscht wird – egal, in welcher Umgebung die Software ausgeführt wird.

Mittlerweile ist Docker allerdings weit über ein einfaches Tool für die Erstellung von Containern hinaus. Innerhalb weniger Jahre hat sich ein ganzes Ökosystem rund um die in Go geschriebene Anwendung entwickelt. So gibt es beispielsweise mit Docker Registry eine Lösung für die Lagerung und Distribution von Docker-Images, Docker Compose erlaubt es Nutzern, ihre Multi-Container-Anwendung mit sämtlichen Abhängigkeiten in einer einzigen Datei zu definieren.

Neben der großen Funktionsvielfalt sind die Entwickler von Docker bestrebt, die Universalisierung von Containern voranzutreiben. Um dieses Ziel zu erreichen, wurde die Docker-Engine für die aktuelle Version grundsätzlich überarbeitet, sodass nun Container erstellt und zum Laufen gebracht werden können, die den Spezifikationen der Open Container Initiative (OCI) entsprechen.

Docker Swarm

swarm quadratischEin wichtiges Produkt aus dem Docker-Ökosystem ist Docker Swarm. Das Orchestrierungs-Tool steht dabei in direkter Konkurrenz zu Apache Mesos und Googles Kubernetes. Docker Swarms Vorteil gegenüber Kubernetes und Co. ist, dass es Dockers Standard-API nutzt und somit jede Anwendung, mit der Docker kommuniziert, ebenso mit Docker Swarm kommunizieren kann.

Der Unterschied zwischen Containern und virtuellen Maschinen. / Quelle: Docker, Inc.

Der Unterschied zwischen Containern und virtuellen Maschinen. / Quelle: Docker, Inc.

Kubernetes

kubernetes quadratisch
Hersteller: Google / Cloud Native Computing Foundation (CNCF)
Lizenz: Open Source
Aktuelle Version: 1.2.4
Link: http://kubernetes.io
Der Container-Cluster-Manager wurde ursprünglich von Google entwickelt und schließlich der CNCF gespendet. Kubernetes kann dabei für das automatische Deployment und die Skalierung von containerisierten Anwendungen verwendet werden. Container werden hierzu in logische Teile zusammengefasst, was die Verwaltung und die Übersicht vereinfachen soll.

Kubernetes wird oft als Konkurrenz- oder Alternativprodukt zur nativen Lösung von Docker selbst (Docker Swarm) angesehen. In der Anfangszeit von Docker war Kubernetes ein mächtiges Werkzeug, denn es hatte Lösungen für viele Probleme parat, die Docker selbst (noch) nicht zu lösen vermochte. So konnte man mit Kubernetes erstmals Container ohne Datenverlust bewegen, Netzwerke zwischen Containern erstellen und einen Load Balancer nutzen.

Diese Vorteile sind allerdings nicht völlig problemlos nutzbar: Kubernetes verwendet ein anderes CLI, andere APIs und andere YAML-Definitionen als Docker selbst. So ist es nicht möglich, das Docker CLI oder Docker Compose für die Container-Definition zu nutzen. Mittlerweile ist Docker bestrebt, die Vorteile externer Tools wie Kubernetes selbst nativ anzubieten.

Apache Mesos

mesos quadratisch
Hersteller: Apache Software Foundation / Project Mesos
Lizenz: Open Source
Aktuelle Version: 0.28.1
Link: http://mesos.apache.org
Neben Kubernetes und Swarm hat sich Mesos von Apache als praktische Altnernative herausgestellt. Das in C++ geschriebene Tool ist vor allem auf die Orchestration von sehr großen Clustern angelegt und ist auf die Verwaltung hunderten oder sogar tausenden von Hosts zugeschnitten.

Apache Mesos ist ein verteilter System-Kernel und wurde nach den gleichen Prinzipien wie der Linux-Kernel entwickelt, nur mit einem anderen Level der Abstraktion. Der Mesos-Kernel läuft auf jeder Maschine und versorgt Anwendungen wie Hadoop, Spark, Kafka und Elasticsearch mit APIs für das Ressourcenmanagement und Scheduling von ganzen Datenzentren und Cloudumgebungen.

Im Vergleich mit Swarm ist das an der University of Berkeley entwickelte Projekt deutlich umfangreicher und auf die Nutzung von größeren Clustern ausgelegt. Hohe Belastbarkeit und sicherer Zugriff sind ebenfalls Kernaspekte von Mesos.

Rkt

rkt quadratisch
Hersteller: CoreOS, Inc.
Lizenz: Open Source
Aktuelle Version: 1.6.0
Link: https://github.com/coreos/rkt
Rkt (rock-it gesprochen) ist die Container-Engine des Betriebssystems CoreOS. Der Vergleich mit der konkurrierneden Docker-Engine, die als zentraler monolithischer API-daemon implementiert wird, zeigt, dass der Aufbau im Prinzip ganz ähnlich ist. Mit rkt kann man, genau wie mit Docker, erstellte Docker-Images benennen und die Anwendungs-Container downloaden, ausführen und beobachten (monitoren). Doch neben den weit verbreiteten Docker-Containern ist rkt auch in der Lage App Container (appc) auszuführen.

Die Entwickler von rkt haben besonderes Augenmerk auf die Sicherheit und Zusammensetzbarkeit gelegt. Das Prinzip „secure-by-default“ war dafür verantwortlich, dass Features wie SELinux, TPM measurement und die Möglichkeit, Anwendungscontainer in Hardware-isolierten virtuellen Maschinen laufen zu lassen, zur Grundausstattung von rkt gehören.

fleet

Für rkt, das durchaus dafür geeignet ist, Kubernetes als Orchestrations-Tool zu verwenden, gibt es auch eine „Hauslösung“ von CoreOS namens fleet. Das auf systemd basierende Tool ist auf Fehlertoleranz ausgelegt und wird von den Betreibern von CoreOS als Basis-Architektur für spezialisiertere Programme wie Kubernetes beschrieben.

Die Prozessmodelle von Docker und rkt im Vergleich / Quelle: rkt auf GitHub

Die Prozessmodelle von Docker und rkt im Vergleich / Quelle: rkt auf GitHub

Packer

packer quadratisch
Hersteller: HashiCorp, Inc.
Lizenz: Open Source
Aktuelle Version: 0.10.1
Link: https://www.packer.io
Mit Packer ist es möglich, identische machine images zu erstellen, die auf verschiedenen Plattformen laufen und eine einzige gemeinsame Grundkonfiguration haben. Packer ist dabei leichtgewichtig, kann auf jedem Betriebssystem ausgeführt werden und ist hochperformant (es erstellt die machine images für mehrere Plattformen parallel).

Ein machine image ist eine einzelne, statische Einheit, die ein vorkonfiguriertes Betriebssystem und installierte Software beinhaltet, um möglichst schnell neue Running Machines zu erstellen.

Docker Builder

Packer kann mit dem Docker Builder sogar Docker-Images unter Verwendung von Docker erstellen, verzichtet dabei aber auf die Nutzung der Dockerfiles. Dadurch ist es Packer möglich, Container mit portablen Scripts oder Konfigurationsverwaltungssysteme zur Verfügung zu stellen, die in keinster Weise an Docker gebunden sind.

Packer / Quelle: packer.io

Packer / Quelle: packer.io

Linux Containers

linuxcontainers quadratisch
Hersteller: Diverse
Lizenz: GNU LGPL v.2.1
Aktuelle Version: 2.0.1
Link: https://linuxcontainers.org
Linux Containers besteht aus mehreren Produkten wie LXC, LXD, CGManager und LXCFS. Das Schirmprojekt hat es sich zum Ziel gesetzt, eine distributions- und anbieterneutrale Plattform für die Entwicklung von Linux-Container-Technologien zur Verfügung zu stellen.

LXC

Das wichtigste Produkt der Palette ist LXC (Linux Containers), das mit Docker und rkt konkurriert. LXC realisiert  die Virtualisierung nicht durch virtuelle Maschinen, wie Vergleichsprogramme, sondern erzeugt eine virtuelle Umgebung. Diese besitzt ihre eigenen Prozesse, nutzt aber den Kernel des Hostsystems. LXC erstellt also Systemcontainer, die eine zu virtuellen Maschinen möglichst nahe Umgebung bereitstellen sollen, ohne dabei die zusätzliche Belastung durch einen separaten Kernel und komplett simulierte Hardware tragen zu müssen.

Neben der Programmbibliothek beinhaltet LXC eine Vielzahl an APIs für Programmiersprachen wie Go oder Python, Containervorlagen und Werkzeuge zur Verwaltung der Container. Auch bei LXC ist für die Verbesserung der Sicherheit SELinux integriert.

Shipyard

 
 
shipyard
Hersteller: Shipyard Project
Lizenz: Apache 2.0
Aktuelle Version: 3.0.4
Link: https://shipyard-project.com
Das Projekt Shipyard basiert auf Docker Swarm und kann dazu verwendet werden, Docker-Ressourcen – also Container, Images, private Registries, Nodes usw. – clusterweit zu verwalten. Außerdem stellt Shipyard Authentifizierung und eine rollenbasierte Zugangskontrolle zur Verfügung.

Shipyard ist Web-basiert und unterscheidet sich damit von Desktop-Tools wie Kitematic. Außerdem ist es zu 100 Prozent mit dem Docker Remote API kompatibel, was es von anderen Management-Tools unterscheidet.

Shipyard / Quelle: Shipyard

Shipyard / Quelle: Shipyard

CloudSlang

 
 
CloudSlang_logo_no-symbol.84128a6d
Hersteller: Hewlett Packard Enterprise
Lizenz: Open Source
Aktuelle Version: 0.9.50
Link: http://www.cloudslang.io
CloudSlang ist, wie Kubernetes, Docker Swarm oder Apache Mesos, ein Tool zur Orchestrierung von Containern und wurde vorher unter dem Namen „Score“ von Hewlett Packard entwickelt. Im Gegensatz zu bspw. Swarm, ist CloudSlang allerdings nicht auf die Nutzung mit einer Technologie beschränkt, sondern ist sowohl zu Docker- als auch zu CoreOS-basierten Technologien kompatibel.

Mit CloudSlang ist es möglich, vorgefertigte und mitgelieferte Workflows zu verwenden oder eigene zu erstellen. Für die Erstellung eigener Workflows wird wird eine auf YAML basierende domänenspezifische Sprache (DSL) verwendet. Die CloudSlang-Workflows sind dabei einfach zu verstehen, wiederverwendbar und man kann sie mit anderen Nutzern teilen.

Aufmacherbild: Four shipping containers during transport. 3D rendered image. von Shutterstock / Urheberrecht: Grzegorz Petrykowski

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "8 Containertools im Vergleich: Docker – Kubernetes – Rkt – Mesos – Packer –Shipyard – CloudSlang – Linux Container"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Admin
Gast

Soviele technische fehler hab ich selten in einem artikel gesehen..