Suchen

Definition „Cluster (K8s)“ Was ist ein Kubernetes Cluster?

| Autor / Redakteur: zeroshope / Stephan Augsten

Cluster in Kubernetes sind ein Rechner-Verbund, der für den Betrieb von containerisierten Anwendungen zuständig ist. Dabei sind allerdings einige Besonderheiten zu berücksichtigen. Es handelt sich um keine reinen Soft- oder Hardware-Cluster.

Firma zum Thema

Kubernetes nutzt sowohl Hardware- als auch Software-Cluster, um Container hochverfügbar bereitstellen zu können.
Kubernetes nutzt sowohl Hardware- als auch Software-Cluster, um Container hochverfügbar bereitstellen zu können.
(Bild gemeinfrei: Pete Linforth / Pixabay )

Generell sind Cluster vernetzte Maschinen, die nach außen wie eine einzige erscheinen. Software- bzw. Anwendungscluster werden gemeinhin von Hardware-Clustern unterschieden. Erstere sind in der Lage einen kontinuierlichen Betrieb zu gewährleisten – DNS-Server sind hierfür ein Beispiel. Hardware-Cluster (beispielsweise verbundene Server) können dies nicht zwangsläufig leisten.

Harware-Verbünde werden deshalb in der Regel nach dem Failover-Prinzip organisiert: Fällt eine Maschine aus, springt eine andere für ihn ein. Sind zahlreiche Maschinen eingebunden, spricht man von einem Hochverfügbarkeits- bzw. High-Availability-Cluster. Fällt ein Knoten des Verbunds aus oder weist einen Fehler auf, werden seine Dienste auf andere verteilt.

Cluster werden zudem nach homogen und heterogen unterschieden. Homogene Verbünde laufen mit dem gleichen Betriebssystem und der identischen Hardware. Heterogene Cluster können diesbezüglich Unterschiede aufweisen.

Cluster in Kubernetes

In Kubernetes finden wir zugleich Hardware- wie auch Anwendungscluster. Es handelt sich um einen Verbund von sogenannten Nodes – dabei handelt es sich um eigenständige Server, die für die Bereitstellung von Workloads sorgen. Auf den Servern läuft zudem eine Software für den Transport von Containern. Ein Kubernetes-Cluster besteht mindestens aus einem Master-Node (Verwaltung des Systems) und einem Worker-Node (Durchführung der Workloads).

Die Hardware-Konfiguration der Maschinen kann sich unterscheiden. Es handelt sich folglich um heterogene Cluster. In der Regel sind es zudem Hochverfügbarkeitsverbünde. Die Master-Nodes sind in der Lage, Aufgaben von fehlerhaften Worker-Nodes an andere Stellen weiter zu delegieren, um den Betrieb aufrecht zu erhalten.

Die zentrale Aufgabe von Kubernetes-Clustern

Die Cluster sind für die Bereitstellung und den Transport von Containern an ihren Zielort zuständig. Container sind faktisch virtuelle Maschinen, die einer kompletten Anwendung inklusive Konfiguration und den zugehörigen Abhängigkeiten entspricht. Sie verfügen allerdings über kein eigenes Betriebssystem und keinen Kernel. Sie deshalb schlanker als sonstige virtuelle Maschinen.

An dieser Stelle kommen die Kubernetes-Cluster ins Spiel: Damit die Anwendungen am Zielort trotzdem laufen, muss ein Vermittler zwischen dem Container und der Zielort zwischengeschaltet wird. Dieser liest die Spezifikationen der Container-Anwendungen aus, stellt diese dem Betriebssystem zur Verfügung und leitet die Anwendung dann weiter. Eben diese Vermittler-Rolle übernehmen die Cluster.

Die Vorteile liegen auf der Hand: Anwendungscontainer können in unveränderter Form auf verschiedenen Rechnern laufen. Der hohe Aufwand (Overhead), den virtualisierte Maschinen mit Betriebssystem für die Anwendungsbereitstellung betreiben müssen, entfällt dabei.

Cluster Architect und Cluster Operator

Kubernetes-Cluster kennen zwei Rollen, die von Menschen ausgefüllt werden. Der Cluster Architect trägt für das Design des Verbunds die Verantwortung. Er soll dafür sorgen, dass Hochverfügbarkeit und eine möglichst gute Sicherheit gewährleistet sind. Der Cluster Operator konfiguriert, kontrolliert und überwacht den Verbund. Er hat dabei zwei wesentliche Aufgaben. Erstens muss er dafür sorgen, dass der Cluster durchgängig funktioniert. Zweitens plant er Updates und spielt diese ein.

(ID:46228301)