Cloud Computing: Einführung in Kubernetes und Docker

Kubernetes und Docker liefern wichtige Fähigkeiten, die speziell im Cloud Umfeld benötigt werden aber auch On-Premise eingesetzt werden.

Beide Tools sind besonders bei Entwicklern und im DevOps beliebt, lassen sich aber auch in anderen Bereichen einsetzen. Daher sollte man beide Tools einmal gesehen haben.

Heute gibt es eine Kurzeinführung.

Docker

Letztendlich ist Docker ein Containerisierungsframework. Die jeweilige Software wird je in einem Container installiert und dort eingerichtet. Diese Container werden in der Rechnerlandschaft verteilt und vernetzt. Man kann sie sich als virtuelle Computer vorstellen, die beliebig skaliert werden können.

Die angefügten Webseiten „What is docker“ und „What is a container“ erklären die Eigenschaften von Docker im Detail.

Container können hoch und runtergefahren werden oder z.B. dupliziert. Besonders nützlich sind solche Fähigkeiten z.B. beim Betrieb von Microservices. Microservices bestehen aus Software, die miko-modularisiert und auf viele Container verteilt wird, und die jeweils unabhängig voneinander verändert werden kann.

Ein weiteres Anwendungsfeld sind „Continuous Integration Scenarios“. Dort verwendet man automatisierte Pipelines, um die inkrementellen Entwicklungen, die in Team laufend produziert kontinuierlich zu testen, zu produzieren, zu paketieren und zu installieren. Hier kann man Container z.B. benutzen, um flexibel passende Testsysteme zu installieren, bzw zum Testende zu deinstallieren.

Docker-Hub

Damit man Container nutzen und installieren kann, muss man definieren, aus was sie bestehen sollen. Sogenannte „Dockerfiles“ beschreiben die Software, die in einem Container installiert werden soll zusammen mit dem entsprechenden Customizing.

Diese Dockerfiles kann man sich im Dockerhub besorgen und sie von dort herunterladen und mit einem Click installieren. So hat man dann innerhalb weniger Minuten z.B eine Instanz der No-SQL Datenbank „Cassandra“ auf seinem Rechner der Server installiert und konfiguriert, und kann problemlos weitere Instanzen starten, um seine Daten zu speichern.

Orchestrierung

Eine typische Cloudlandschaft besteht aus einer großen Zahl solcher Container. Damit die Cloud skaliert, müssen diese Container verwaltet oder gestartet und gestoppt werden. Dafür wird im Dockerumfeld entweder „Docker Swarm“, oder seit Kurzem das neu in Docker integrierte „Kubernetes“ verwendet (siehe das weiter unten erwähnte „Kubernetes Support in Docker„)

Kubernetes

Kubernetes liefert die Fähigkeit, Container im Produktivumfeld zu orchestrieren (siehe die Homepage „Production-Grade Container Orchestration“). Ein Beispiel hierfür wäre die „Selbstheilung“, die diese Orchestrierung dem Rechnercluster gestattet. Eine andere Anwendung wäre das bedarfsorientierte Hoch- und Runterfahren zusätzlicher Rechnerkapazitäten.

Stellen Sie sich zum Beispiel vor, einer von hundert Containern im Netzwerk stellt die Arbeit ein (z.B aufgrund von Hardwaredefekt oder Softwarefehler), oder er meldet sich nicht mehr. Kubernetes stellt das Problem automatisch fest, beendet hängende Container und startet alternative Kopien neu, ohne dass Sie als Anwender es bemerken.

Oder stellen Sie sich vor, Sie starten eine Webcampage, und Ihre Website wird auf einen Schlag von Tausenden Usern besucht. Um Kapazitätsengpässe und Wartezeiten zu vermeiden, startet Kubernetes in einer solchen Situation automatisch weitere Instanzen Ihrer Webanwendung und verteilt diese im Cluster ( „Load Balancing“).

Beide solche Szenarien wären in herkömmlicher Technologie nicht denkbar, in Docker und Kubernetes ist es aber eine einfache Übung.

Wenn Sie das einmal ausprobieren wollen, empfehle ich Ihnen die „Kubernetes Basics Modules Lernen„. Dort können Sie definierte Szenarien online in einer Beispiellandschaft ausprobieren. Diese Dokumentation ist sehr gut und verständlich gehalten.

Weiterführende Informationen

Das Original dieses Artikels ist auf Der Produktmanager erschienen (©Andreas Rudolph). Folgeartikel zum Thema gibt es über die (→Mailingliste), oder indem Sie →mir auf Twitter folgen.

In der Online Version des Artikels finden Sie hier die versprochenen weiterführenden Links:

Comments are closed.