Was ist Kubernetes?

Kubernetes, auch bekannt als K8s, ist eine Open-Source-basierte Container-Orchestrierungs-Plattform zur Verwaltung portabler containerisierter Applikationen, die auf einem Cluster von Hosts ausgeführt werden. Die Plattform erlaubt Unternehmen, cloudnative Applikationen nach Belieben bereitzustellen und zu verwalten.

Der Name Kubernetes geht auf das griechische Wort für „Steuermann“ oder „Lotse“ zurück. Die Kurzform „K8s“ verweist auf den ersten Buchstaben des Wortes und die acht weiteren Buchstaben vor dem „s“.

Kubernetes und Containerisierung erklärt

Bei der Containerisierung werden Applikationen in kleine Einheiten unterteilt (oft als Microservices) und mit allen Elementen verpackt, die für eine konsistente Ausführung von Applikationen in jeder beliebigen Umgebung erforderlich sind. Immer mehr Unternehmen setzen eine große Anzahl von portablen Containern in verschiedenen Umgebungen ein, von On-Premises bis zur Multi-Cloud. Container sind in Entwicklungs- und Produktionsumgebungen portabel. Wenn die Nachfrage nach einem Dienst steigt, können IT-Teams Container schnell und einfach skalieren.

Kubernetes bietet eine Orchestrierungslösung zur Verfolgung, Planung und Verwaltung dieser Container. Dabei sorgt Kubernetes dafür, dass sich jeder Container dort befindet, wo er sein soll, und mit anderen Containern zusammenarbeitet, damit alle Dienste reibungslos und wie vorgesehen ausgeführt werden. Es stellt sicher, dass langlaufende Dienste kontinuierlich weiterlaufen, schafft aber auch ein Gleichgewicht für intensive kurzfristige Arbeiten wie z. B. Builds.

Die Leistungsfähigkeit von Low-Code auf Kubernetes

Erfahren Sie, wie Sie mit Kubernetes starten, ohne Ihr IT-Team zu belasten.

Zum Whitepaper

Wie funktioniert Kubernetes?

Da so viele Container in verschiedenen Diensten und Umgebungen existieren und für eine hohe Komplexität sorgen, sind Unternehmen auf Verwaltung und Automatisierung angewiesen. Kubernetes verwendet eine Open-Source-API, die verwaltet, wo und wie Container ausgeführt werden. Sie ermöglicht die Automatisierung von Ressourcen und die Bereitstellung von Aufgaben, was den Skalierungsprozess vereinfacht.

Kubernetes läuft auf einem Betriebssystem – meistens Linux, aber auch auf Windows und anderen. Bei der Bereitstellung von Kubernetes wird ein Cluster erstellt, der auf der einfachsten Ebene nur aus Arbeitsmaschinen, den sogenannten Nodes, und einem Manager, der sogenannten Control Plane, besteht. Dieser Cluster kann auf physischen oder virtuellen Rechnern – oder beiden – bestehen, die über ein gemeinsames Netzwerk miteinander kommunizieren. Alle Kubernetes-Komponenten und -Funktionen befinden sich im Cluster.

Kubernetes verwaltet diese Cluster und plant die Container so, dass sie auf der Grundlage der verfügbaren Rechenressourcen und der Anforderungen der einzelnen Container möglichst effizient ausgeführt werden. Die Verwaltung dieser Cluster und des jeweils erforderlichen Speichers wird als Orchestrierung bezeichnet.

Hier sind einige wichtige Begriffe zum Verständnis der verschiedenen Ebenen von Kubernetes:

  • Control Plane: Die Control Plane (oder Steuerungsebene) ist die Orchestrierungsschicht – ein regelnder Satz von Prozessen, der die Kommunikation für einen Kubernetes-Cluster übernimmt. Das Herzstück der Control Plane ist der Kubernetes API Server, mit dem Entwickler Aufgaben im Zusammenhang mit der Bereitstellung und Verwaltung von Ressourcen automatisieren können. Alle Aufgabenzuweisungen, wie z. B. die Planung und Aufteilung des Workloads oder der Start von Applikationen, stammen von der Control Plane. Die Kubernetes Control Plane kann auf einem Haupt-Node ausgeführt werden oder bei hochverfügbaren Clustern über mehrere Nodes verteilt sein.
  • Nodes: Ein Node ist eine Arbeitsmaschine, die von der Control Plane angeforderte Operationen ausführt. Jeder Node muss eine Container-Laufzeitumgebung (z. B. Docker) enthalten, die auf Container-Images zugreift und die Applikation ausführt. Zudem ist ein Kubelet erforderlich. Dabei handelt es sich um einen Kommunikationsprozess, mit dem die Control Plane die Nodes verwalten kann. Nodes können aus einem oder mehreren Pods bestehen.
  • Pods: Ein Pod ist das kleinste Element im Kubernetes-Ökosystem. Er besteht aus einer oder mehreren containerisierten Apps, die jeweils eine IP-Adresse haben, unter der sie existieren. Pods arbeiten innerhalb von Nodes.
  • Cluster: Ein Kubernetes-Cluster ist eine Gruppe von Nodes, auf denen containerisierte Applikationen ausgeführt werden, zusammen mit einer Control Plane.
  • Services: Applikationen müssen verfügbar gemacht werden, damit Nutzer darauf zugreifen können. Wenn Applikationen auf eine funktionale Kapazität zugreifen wollen, über die andere Applikationen verfügen, konfigurieren Entwickler diese als Service und fügen Metadaten (sogenannte Schlüssel-Wert-Paare) in Form von Labels und Annotationen hinzu. Mit ihnen kann ein Kubernetes-Service mit einem Set aus Pods verknüpft werden. Diese Architektur bietet eine lose gekoppelte Methode der Service-Erkennung – der automatisierte Prozess des Auffindens eines benötigten Dienstes.

Warum entscheiden sich Unternehmen für Kubernetes und was sind seine Vorteile?

Unternehmen entscheiden sich für den Einsatz von Kubernetes, da ihr Bedarf an der Verwaltung von Microservices in containerisierten Applikationen wächst. Entwicklerorganisationen nutzen Kubernetes, um den Bedarf an Betriebsressourcen durch die Automatisierung der Bereitstellung, Skalierung und Verwaltung von Containern zu reduzieren. Kubernetes vereinfacht die Verwaltung und Erkennung von Applikationen, indem es sie in Funktionseinheiten gruppiert und eine Open-Source-API einsetzt, um zu verwalten, wie und wo Container ausgeführt werden.

Unternehmen setzen Kubernetes wegen der folgenden Vorteile ein:

  • Erreichen einer schnelleren, zielgerichteten Entwicklung. Wenn Entwickler Legacy-Applikationen in kleine funktionale Cluster refaktorisieren und neue cloudnative Applikationen erstellen, können sie mit Kubernetes neue Dienste freigeben, sobald diese fertig sind. Sie müssen also nicht warten, bis die gesamte Applikation abgeschlossen ist. Entwickler können den gewünschten Status von Software-Pods ändern, um neue Software bereitzustellen, Bereitstellungen anzuhalten, zu skalieren, zurückzurollen und nicht benötigte Sets zu bereinigen. Diese Automatisierung eliminiert manuelle Prozesse.
  • Bereitstellen von Applikationen überall. Da Kubernetes so konzipiert ist, dass es sich überall ausführen lässt, können Unternehmen beliebig viele Umgebungen wählen, in denen sie Cluster ausführen möchten – von On-Premises über die Public Cloud bis zur Hybrid Cloud oder einer beliebigen Kombination.
  • Erhalt des Systemzustands. Kubernetes stellt Services zur Verfügung, wann und wo immer sie benötigt werden, indem es den Systemzustand überwacht. So stellt Kubernetes die Verfügbarkeit sicher und bietet durch seine Selbstheilungsfunktionen Ausfallsicherheit. Kubernetes findet ausgefallene Container und startet sie neu, plant ausgefallene Nodes neu ein und entfernt Container, die nicht mehr reagieren.
  • Effizienter Betrieb von Containern und Applikationen. Durch automatisiertes Paketieren können Entwickler die Anforderungen für Container festlegen und Kubernetes automatisch bestimmen lassen, wie die Ressourcen zugewiesen werden. Kubernetes kann Container automatisch in Nodes einpassen, was den manuellen Aufwand reduziert und die Ressourcennutzung maximiert. Darüber hinaus kann Kubernetes Cluster auch automatisch je nach Bedarf skalieren sowie für einen Lastausgleich sorgen, damit der Datenverkehr gleichmäßig verteilt wird.

Ursprung und Verwaltung von Kubernetes

Entstanden ist Kubernetes bei Google über einen Zeitraum von etwa 15 Jahren, als Google ein internes Cluster-Management-System namens Borg entwickelte, das jede Woche Milliarden Container erzeugte. 2014 hat Google Kubernetes der Öffentlichkeit vorgestellt. 2015 hat das Unternehmen die Technologie als Seed-Technologie an die Linux Foundation gespendet. Die Linux Foundation hat wiederum die CNCF gegründet. Dabei handelt es sich um ein gemeinnütziges Technologiekonsortium, das Kubernetes verwaltet. 2018 hat Google die operative Kontrolle über Kubernetes offiziell an die Community abgegeben. Nach Angaben der Stiftung ist Kubernetes eines der am schnellsten wachsenden Projekte in der Geschichte der Open-Source-Software.

Zur weiteren Unterstützung der Kubernetes-Umgebung bietet die CNCF die Zertifizierung zum Certified Kubernetes Administrator (CKA) und Certified Kubernetes Application Developer (CKAD) an. Darüber hinaus bietet die CNCF Anbietern die Möglichkeit, Produkte und Dienstleistungen über ihr Certified Kubernetes Conformance Program (KCSP) zu zertifizieren. Im Rahmen dieses Programms weisen Anbieter nach, dass ihre Produkte und Dienstleistungen mit einer bestimmten Reihe von Kubernetes-APIs konform sind und mit anderen Kubernetes-Implementierungen funktionieren.

Effiziente Verwaltung von Container-Apps mit Kubernetes

Kubernetes ist ein unverzichtbares Werkzeug für Entwicklerteams, die Applikationen schnell und in großem Umfang erstellen und bereitstellen wollen. Wenn Sie mehr über die Verwendung und Verwaltung von Kubernetes erfahren möchten, schauen Sie gerne in unseren Tech Talk zu diesem Thema.