Wie Container ins Orchester kommen

Containerisierung und Orchestrierung sind Begriffe, auf die man im Cloud Umfeld sehr schnell mal stösst. Die wohl bekanntesten Produkte in diesem Bereich heissen Docker, Kubernetes und OpenShift. Die Produkte und Begriffe werden aber oft durcheinandergebracht. Zeit, um etwas Klarheit zu schaffen.

Um die Produkte auseinander zu halten zu, gilt es zunächst einmal zu verstehen, was denn genau hinter den Begriffen Docker, OpenShift und Kubernetes steckt. Danach können die Tools eingeordnet werden.

Docker und Container

Docker ist ein Tool, das eine Art von Virtualisierung zulässt. Im Unterschied zu klassischer Virtualisierung arbeitet Docker jedoch nicht mit Virtuellen Maschinen, sondern mit Containern. Letztere haben gegenüber klassischen VMs einige deutliche Vorteile:

  • Leichtgewichtiger dank geteilter Ressourcen
  • Innert Sekunden gestartet oder gestoppt
  • Einfache portierbarkeit

Dank Containerisierung ist es möglich, komplexe Anwendungen in ein Image zu packen und dieses innert wenigen Sekunden zu starten. Administratoren müssen sich dadurch nicht mehr darauf konzentrieren, Umgebungen zu konfigurieren, da notwendige Konfigurationen bereits im Image integriert sind. Die Containerisierung erleichtert auch Rollbacks, da bei Fehlern einfach das vorherige Image wieder gestartet werden kann.

Bei Virtualisierung (links) hat jede Instanz ein komplettes Betriebssystem sowie eigene Bibliotheken bei Containern (rechts) hingegen teilen sich mehrere Container dieselben Ressourcen. Docker dient dabei als Container Engine. Durch diese Architektur sind Container wesentlich schlanker als virtuelle Maschinen (Bild: Roman Holdener)

Kubernetes

Das Starten eines Docker Images erfordert allerdings immer noch einen manuellen Eingriff durch einen Administrator. Bei einem Ausfall muss daher immer ein Mensch eingreifen, um die Anwendung wieder zu starten. Ausserdem kann das Deployen und Monitoren bei komplexen verteilten Applikationen sehr aufwendig werden. Hier kommt Kubernetes ins Spiel. Kubernetes ermöglicht es, containerisierte Anwendungen zu managen. Vereinfacht gesagt, wird mittels eines deklarativen Codes der Kubernetes Engine gesagt, welchen Zustand ein System haben soll. Erstellt nun selbständig die Container. Fällt nun beispielsweise ein Service aus, startet Kubernetes automatisch einen neuen Service, sodass der Status des Systems wieder der Deklaration entspricht. Steht nun beispielsweise ein Update an, muss einfach das deklarations-File geändert werden und Kubernetes passt den Zustand des Systems automatisch im an.

OpenShift

Um zu verstehen, was OpenShift ist, muss man zunächst verstehen, was Kubernetes nicht ist, nämlich ein all-inclusive PaaS System. Kubernetes bietet lediglich die Bausteine, um eine solche Plattform darauf aufzubauen. Die meisten Firmen haben jedoch nicht die Ressourcen, um eine solche Plattform aufzubauen. Dieser Fakt machte sich RedHat zu nutzen, indem sie OpenShift entwickelten. OpenShift stellt als fertige Plattform für Unternehmen alles zur Verfügung, was sie brauchen. Wenn Kubernetes in der Analogie also Bausteine darstellt, stellt OpenShift ein fertiges Haus inklusive Türen (mit Schlössern), Fenstern und Zentralheizung dar.

 

Fazit

Ziel dieses Blogs war es, zu verstehen, wie Docker, Container, Kubernetes und OpenShift zusammenhängen. In einem Satz gesagt, ist Docker die Plattform, welche Container zur Verfügung stellt und OpenShift ist eine PaaS Anwendung, welche auf Grund der Prinzipien von Kubernetes containerisierte Anwendungen steuert. Stark vereinfacht in der Analogie eines Orchesters erklärt, ist ein Docker Container ein einzelner Musiker und OpenShift ist das Konzerthaus, in dem der Musiker, zusammen mit anderen Musikern, ein Konzert spielt. Kubernetes ist dabei der Lieferant, der die Baumaterialien für das Konzerthaus zur Verfügung gestellt hat.

Weiterführende Links

Quellen

Beitrag teilen

Roman Holdener

Roman Holdener ist Product Owner für die Atlassian Tools bei der Suva und bloggt aus dem Unterricht des CAS Cloud Platform Manager.

Alle Beiträge ansehen von Roman Holdener →

Schreibe einen Kommentar