Der aspectra-Blog seit 2012

OpenShift 101

OpenShift, Container, Microservices, Pods und viele andere Begriffe schwirren durch unsere IT-Gegend. Doch in welchem Zusammenhang stehen die Wörter? Gibt es da überhaupt noch eine einfache Erklärung dafür? Im heutigen Blog wollen wir uns eine Übersicht zur Funktionsweise von Container-Plattformen schaffen. 

Container

Man stelle sich das vor: Wir sind PHP-Applikationen und leben in einem grossen Haus, in dem auch sehr viele andere Applikationen wohnen. Jedoch wären wir eigentlich gern für uns alleine. Doch wo findet man einen Ort, der einem einen eigenen Platz gibt und dies noch in der passenden Umgebung? Dafür gibt es das sogenannte «Amt für Container», welches von der Firma Docker zur Verfügung gestellt wird. Das Amt ermöglicht es Applikationen, alleine und unabhängig von anderen zu leben. Dies macht es in Form eines Containers, der nach unseren Bedürfnissen ausgestattet ist.

Das Haus ist in diesem Kontext als Server zu verstehen. Normalerweise gibt es auf einem Server mehrere Applikationen, wie zum Beispiel einen Tomcat-App-Server, einen Apache-Webserver oder eine MySQL-Datenbank. Der Nachteil dabei ist, dass alle verschiedene Libraries in verschiedenen Versionen benutzen und sich so in die Quere kommen können. Um diesem Problem auszuweichen, verwenden wir Container  mithilfe von Docker.

Kubernetes & Pods

Nun hat uns das Amt für Container einen Container zur Verfügung gestellt. Doch es ist nicht dafür verantwortlich, dass der Container sauber bleibt  und dass die Kommunikation mit anderen Containern möglich wird. Dafür ist die Verwaltung namens Kubernetes zuständig. Unsere Anliegen wie auch die Anliegen anderer Applikationen werden von Kubernetes entgegengenommen und automatisch angegangen. Doch dafür zügelt die Verwaltung unseren Container in einen Pod und stellt diesen in eine Art «Wohnblock» für Pods.

Um die Docker-Container verwalten zu können, gibt es Kubernetes. Kubernetes ist sozusagen das Verwaltungsprogramm für OpenShift. Alle Einstellungen, die wir einrichten, werden von Kubernetes umgesetzt. Um dies zu ermöglichen, stellt Kubernetes die Container in sogenannte Pods. Ist der Container in einem Pod, wird ihm die Kommunikation mit dem Kubernetes-Netzwerk ermöglicht. Für die einzelnen Aufgaben sind sogenannte k8s-Services zuständig.

ReplicationController

Da wir nun alleine in unserem Pod leben, wird es nach einer gewissen Zeit ziemlich einsam. Deshalb stellen wir die Anfrage an die Verwaltung, ob es möglich sei, eine ähnliche Webapp als Nachbar zu bekommen. Die Verwaltung meint, es ist sogar möglich, eine exakte Kopie von uns selbst zu bekommen. Sie kontaktiert umgehend den Dienstleister «Replication Controller» und fordert einen Klon unseres Pods an. Die Einsamkeit löst sich augenblicklich auf.

Replication Controller sind im Übrigen dafür zuständig, dass bei einer zu hohen Auslastung mehrere Klone der Pods erstellt werden. Dies geschieht mithilfe des Autoscalers automatisch. Natürlich kann man auch manuell die Anzahl Klone bestimmen. 

Mit dieser vereinfachten Darstellung hoffe ich, euch die Funktionsweise von OpenShift etwas näher gebracht zu haben. Wie diese Container-Lösung aufzusetzen ist, haben wir kürzlich in unserem Blog vorgestellt: 


Suche