Was ist Kubernetes?

Open-Source-Plattform für die Container-Orchestration

Kubernetes ist eine Umgebung für Container-Anwendungen, die für Linux konzipiert ist. Die Software wurde von Google entwickelt und erschien erstmals im Jahre 2014. Ein Vorteil von Kubernetes, das auch K8s genannt wird, ist, dass es komplett Open-Source ist. Kubernetes ist in der Lage, Container auf unterschiedlichen Distributionen zu orchestrieren. Unterstützt werden unter anderem Cloud-Plattformen wie Azure von Microsoft, OpenShift auf Red Hat oder AWS von Amazon, sowie lokale Container, die On-Premises installiert sind.

Was kann Kubernetes und wofür brauchen Sie es?

Container sind in der IT-Branche mittlerweile nicht mehr wegzudenken. Sie erlauben es ein Betriebssystem, einen bestimmten Prozess oder ein Programm in einer eigenen Umgebung virtuell auf einem physikalischen Host zu starten. Mit dieser Technik ist es möglich, mehrere virtuelle Systeme auf einem Host laufen zu lassen. Der Vorteil ist, dass Veränderungen vorgenommen, einzelne Instanzen neu gestartet oder beendet werden können, ohne die anderen Prozesse auf dem System zu beeinflussen. Gleichzeitig lassen sich einzelne Prozesse besonders einfach in die Cloud auslagern. Aus diesem Grund bieten viele Dienstleister entsprechende Angebote an.

Kubernetes baut auf dieser Technologie auf und macht Container flexibler, stabiler und skalierbarer. Das Programm verwaltet alle Container innerhalb eines Netzwerks und fasst diese zusammen. Auf diese Weise steuern, kontrollieren und verwalten Sie eine beliebige Anzahl an Prozessen, die sich in Containern befinden, zentral von einem Ort aus. Kubernetes erlaubt es, eine beliebige Anzahl von Containern, die sich auf einem System befinden, zusammenzufassen. So fassen Sie Prozesse, die zusammengehören, zusammen und steuern diese bequem simultan. Ebenfalls ist es viel einfacher möglich Cluster zu planen und zu organisieren.

In welchen Szenarien ist Kubernetes besonders effektiv?

In der Praxis lohnt sich der Einsatz von Kubernetes im Prinzip überall dort, wo bereits auf Container gesetzt wird. Mit wachsender Größe des Netzwerks und steigender Anzahl der Container zeigt Kubernetes jedoch seine wirklichen Stärken. Zum einen bleibt die Übersichtlichkeit gewährleistet. Durch die Zusammenfassung von Prozessen ist eine gemeinsame Orchestrierung sehr einfach, auch wenn eine Vielzahl an Containern zu einem Pod gehören. Zum anderen lässt sich der Zustand aller Prozesse schnell und einfach kontrollieren. Jederzeit gibt Kubernetes einen Überblick über alle Container. Einzelne Pods, Prozesse und Container werden zentral gesteuert, beispielsweise gestartet oder gestoppt. Kubernetes erlaubt es auch, automatisch den Zustand aller Container im Netzwerk zu überwachen. Dies verbessert die Erreichbarkeit und somit auch die Zuverlässigkeit Ihrer Services.

Ein weiterer Vorteil zeigt sich bei der Verbesserung der Nutzung von Kapazitäten. Ressourcen spielen vor allem bei aufwendigen Prozessen eine Rolle. Wenn plötzlich mehr Rechen- oder Speicherkapazitäten benötigt werden, ist es möglich, mit Kubernetes darauf zu reagieren. Ressourcen werden skaliert und so kritische Anwendungen am Laufen gehalten. Ebenfalls ist es problemlos möglich, ganze Gruppen von Containern zwischen Systemen zu verschieben. Dies erlaubt es, komplette Strukturen schnell, unkompliziert und sicher zwischen verschiedenen Systemen zu verschieben. Für die Anwender bleiben alle Services weiterhin erreichbar, sodass solche Aktionen sogar in produktiven Systemen durchführbar sind.

Die Sprache rund um Kubernetes – Fachbegriffe, die Sie kennen sollten

Innerhalb der Welt von Kubernetes existieren einige Spezialbegriffe. Um mit dem System arbeiten zu können und sofort zu erkennen, um was es geht, sollten einige Ausdrücke bekannt sein. Die wichtigsten Fachbegriffe lauten wie folgt:

Master: So wird die Maschine bezeichnet, die den Kubernetes-Knoten kontrolliert. Er verwaltet und orchestriert zentral alle Tasks.

Knoten: Die Knoten sind die Systeme, die die Tasks ausführen. Sie werden wiederum vom Master kontrolliert.

Pod: Als Pod wird eine Gruppe von Containern bezeichnet, die sich auf einem Knoten befindet. Ein Pod teilt sich somit die IP-Adresse, IPC, den Hostnamen und die Ressourcen des Systems. Die Anzahl an Containern innerhalb eines Pods wird von den zur Verfügung stehenden Ressourcen definiert. Ein Pod lässt sich innerhalb eines Clusters verschieben, da es losgelöst von Netzwerk und Infrastruktur agiert.

Replication-Controller: Dieser verwaltet wie viele exakte Kopien eines Pods auf dem Cluster existieren.

Service: Innerhalb des Kubernetes-Netzwerks sorgt der Service dafür, dass Anfragen an den korrekten Pod gesendet werden. Der Service erlaubt es, immer den richtigen Pod zu finden, auch wenn dieser verschoben oder durch ein anderes System ersetzt wurde.

Kubelet: Kubelet ist ein Dienst, der auf den Knoten läuft. Er kontrolliert die Container und gewährleistet, dass die gewünschten Container verfügbar und gestartet sind.

kubectl: Hierbei handelt es sich um das Befehlszeilen-Konfigurationstool von Kubernetes.

So ist die Infrastruktur rund um Kubernetes aufgebaut

Die Infrastruktur von Kubernetes besteht aus mehreren physikalischen Systemen sowie zahlreichen virtuellen Instanzen. Herzstück von Kubernetes ist der Master, der als Steuereinheit fungiert. Hier ist das eigentliche System installiert. Zum Master gehört weiterhin der etcd. Dieser speichert die Konfiguration des Clusters und enthält alle wichtigen Informationen. Der API Server stellt alle notwendigen Dienste bereit, um Kubernetes zu steuern. Er verfügt über eine REST-Schnittstelle, über die alle internen und externen Dienste angesprochen werden. Schlussendlich besitzt der Kubernetes-Master noch einen Scheduler. Dieser startet Nodes und Pods automatisch entsprechend der Auslastung.

Der Kubernetes-Master gibt Ihnen Zugang zu allen angeschlossenen Nodes, die auch als Minions bezeichnet werden. Nodes befinden sich in der Regel auf getrennten Systemen, also Servern, die sich an einem beliebigen Ort im Netzwerk oder der Cloud befinden. Auf diesen Nodes laufen die eigentlichen Container. Hierbei kann es sich um Microsoft Azure, IBM Bluemix, Red Hat OpenShift, Amazon AWS oder Oracle OC sowie ähnliche Plattformen handeln. Kubernetes verwaltet diese mithilfe des Prozessmanagers Kubelet. Der Kube-Proxy, der sich ebenfalls auf den Nodes befindet, ist für die Skalierung zuständig. Der Proxy verfügt über Möglichkeiten zum automatischen Lastausgleich, was die Orchestrierung weiter vereinfacht. Der cAdvisor ist ein weiterer Bestandteil der Kubernetes-Infrastruktur auf dem Node. Dieser kontrolliert und protokolliert dauerhaft die Ressourcenauslastung des Systems. Das Monitoring umfasst alle zentralen Daten, wie etwa die CPU-Auslastung, Speichernutzung oder die Nutzung des Netzwerks.

Fazit: Das macht Kubernetes so stark

Es gibt vieles, was für Kubernetes spricht. Ein großer Vorteil ist, dass sich Kubernetes zu jedem beliebigen Zeitpunkt implementieren lässt. Selbst wenn Sie bereits ein großes Netzwerk aus Containern besitzen, ist es problemlos möglich, Kubernetes als übergeordnetes Verwaltungstool vorzuschalten. Es sorgt für Übersichtlichkeit und ermöglicht es, mit einem Befehl beliebig viele Container simultan zu steuern. Außerdem verbessert Kubernetes die Zuverlässigkeit Ihrer Anwendungen und Services. Da die Software automatische Kontrollmechanismen mitbringt, lassen sich Prozesse überwachen sowie automatisch starten. Auch der automatische Lastausgleich lässt sich mithilfe von Kubernetes realisieren. Auf diese Weise optimieren Sie die Ressourcennutzung Ihrer IT-Infrastruktur und erstellen ein skalierbares Container-Netzwerk. Gleichzeitig ist Kubernetes Open Source, was bei Bedarf eine individuelle Anpassung sehr einfach macht. Dank dieser Eigenschaften ist Kubernetes ein sehr vielseitiges und mächtiges Tool für die Orchestrierung von Containern. Selbst virtuelle Infrastrukturen mit der Größe eines Rechenzentrums verwalten Sie ohne Probleme.

Nach oben