Was ist Kubernetes?
In immer mehr IT-Bereichen erweist sich die Dezentralisierung als überlegene Organisationsform. So auch im Bereich von Linux-Entwicklern, wo eigenständig agierende Container inzwischen zum festen Standard geworden sind. Allerdings kann das bei größeren Anwendungen, die eine Vielzahl von Containern kombinieren, schnell zu Chaos und Missmanagement führen. Die Open-Source Software Kubernetes stellt für genau dieses Problem verschiedene Lösungen bereit.
Das ist Kubernetes
Bei Kubernetes handelt es sich um eine Open-Source Plattform, die, vereinfacht gesagt, die Anwendung von Linux Containern vereinfachen und automatisieren sollen. Container haben sich auch für Linux-Anwendungen auf Grund der deutlich verkürzten Entwicklungszeit im Vergleich zu herkömmlichen Pipelines und der sichereren und effektiveren Anwendung im Alltag etabliert.
Wenn man allerdings eine umfassende Linux-Struktur, die aus unzähligen Containern besteht, verwalten muss, kann das schnell zum organisatorischen Alptraum werden. Schließlich müssen alle Prozesse für jeden Container individuell geplant und durchgeführt werden. Darüber hinaus ist es so fast unmöglich, eine effektive Skalierung der eigenen Struktur durchzuführen. Kubernetes ist die Antwort auf diese Probleme.
Denn die Kubernetes Anwendung automatisiert einmal unzählige Befehle und Prozesse, die jetzt für alle Container, bzw. für eine bestimmte Gruppe von Containern gleichzeitig durchgeführt werden können. Darüber hinaus lassen sich durch Pods verschiedene Organisationsebenen erstellen, die den Betrieb der eigenen Linux Plattform weiter vereinfachen. Darüber hinaus können mit Kubernetes auch Container von den verschiedenen Hosts in eine einzige Cloud integriert werden.
Kubernetes: Die wichtigsten Fachbegriffe
Das Kubernetes System verwendet einige Fachbegriffe, die man so nirgendwo sonst findet. Deshalb wollen wir hier zunächst einen Blick auf die Terminologie werfen:
- Cluster: Wird Kubernetes erfolgreich angewendet, dann spricht man von einem Cluster. Alle anderen Teile des Systems werden innerhalb dieses Clusters organisiert.
- Pod: Die kleinste Einheit in Kubernetes. Ein Pod ist ein Behälter, der aus einem oder mehreren Containern besteht, die alle über einen einzelnen Knot implementiert wurden. Die Container innerhalb eines Pods teilen sich also nicht nur dieselbe IP-Adresse, IPC und Hostname, sondern werden auch gemeinsam verwaltet.
- Nodes: Die Rechenmaschinen führen die zugewiesenen Tasks aus, indem Sie auf die Container zugreifen.
- Service: Die Service-Proxies sorgen dafür, dass Serviceanfragen innerhalb des Systems automatisch beim richtigen Pod landen.
- Control Plane: Wie der Name bereits vermuten lässt, handelt es sich hierbei um die Steuerungseinheit des Systems. Hier werden vom Nutzer alle Tasks zugewiesen bzw. angefordert.
- Replication Controller: Der Replication Controller sorgt dafür, dass immer die gewünschte Anzahl identischer Pods auf dem Cluster aktiv ist.
- Kubelet: Den Kubelet Dienst kann man sich als eine Art Kontrollpunkt vorstellen. Dieser wird an den Knots, durch die die Pods implementiert werden, eingesetzt und stellt sicher, dass alle Container ordnungsgemäß funktionieren.
Warum Kubernetes?
Warum ist Kubernetes so beliebt und so wichtig? Kurz gesagt: Durch Kubernetes wird es möglich, auch umfassende Systeme, die aus einzelnen Containern bestehen, unkompliziert und effizient zu verwalten. Vereinfacht ausgedrückt, ist Kubernetes also eine Organisationshilfe, mit der große Container-Bereitstellungen in Ebenen angeordnet und zum Großteil automatisch verwaltet werden können.
Die wichtigste Funktion von Kubernetes ist dabei, dass hiermit mehrere Container zu einem Pod zusammengefasst werden können. So fällt es dem Nutzer nicht nur deutlich leichter, Workloads zu planen, sondern auch den einzelnen Containern immer ausreichend Vernetzung und Storage zur Verfügung zu stellen. So wird auch eine Skalierung von unzähligen Containern innerhalb eines einzelnen Systems möglich.
Darüber hinaus muss der Nutzer dank der Nodes und System-Proxys Tasks nicht mehr manuell zuweisen. Als Administrator gibt man nur den gewünschten Task ein, Kubernetes weist dies dann selbständig zu, überwacht die Auslastung der Nodes und das Vorhandensein von ausreichenden Ressourcen.
Wie funktioniert Kubernetes
Ein erfolgreich implementiertes Kubernetes System wird als Cluster bezeichnet. Das Herzstück dieses Clusters ist das Control Plane. Hier werden alle Tasks eingegeben bzw. angefordert. Anschließend leitet das Control Plane diese Anweisungen weiter, wobei das System automatische entscheidet, welcher Node, also welche echenmaschine für die Anwendung am besten geeignet ist und wie viele Ressourcen dafür benötigt werden.
Jeder Node ist eine eigenständige Linux Umgebung und kann entweder eine physische Maschine, also ein Rechner, oder eine virtuelle Maschine, also eine Cloud, sein. Die Nodes wiederum führen die Pods aus, in denen einer oder mehrere Container zusammengefasst sind. Nachdem das Control Panel einen Task einem Node zugewiesen hat, führt dieser durch die Verwendung der Container den Task aus.
Die allgemeine Verwaltung bzw. der Einsatz der Container ändert sich dadurch nicht. Allerdings muss man als Nutzer jetzt nicht mehr jeden Container einzeln mikromanagen, sondern kann einfach im Cluster festlegen, wie und mit welchen Ressourcen die einzelnen Container arbeiten sollten. Alles andere wird dann automatisch ausgeführt.
Das gilt es bei Kubernetes zu beachten
Kubernetes ist eine Open-Source-Plattform, also grundsätzlich kostenlos nutzbar. Das bedeutet aber auch, dass hier, im Gegensatz zu anderen Online-Services, vom Provider keine Support-Struktur zur Verfügung gestellt wird. Will man Kubernetes also für die eigenen Systeme verwenden, ist ein sorgfältiges Planen, Implementieren und Warten extrem wichtig. Sollte eine Anwendung nicht funktionieren, gibt es schließlich niemanden, an den man sich wenden könnte. Was ist