« Alle Blog Einträge

Die Architektur von Kubernetes – So ist die Anwendung zur Containerverwaltung aufgebaut

Eine kleine Einführung in die Kubernetes-Architektur haben wir bereits in einem früheren Artikel behandelt. In diesem Artikel möchten wir jedoch mehr in die Tiefe gehen und den Aufbau der beliebten Plattform zur Verwaltung von Anwendungscontainern detailliert vorstellen. Denn von der Komplexität von Kubernetes sollten Sie sich nicht abschrecken lassen – genau diese macht das Tool so leistungsstark. 

Was ist Kubernetes?

Kubernetes ist eine Open-Source-Plattform zur Verwaltung von Anwendungscontainern. Das Tool ist ein wahrer Allrounder, da er nicht an eine Software zur Containererstellung gebunden ist, sondern mit vielen Tools kompatibel ist. Mit Hilfe von Plattformen wie Kubernetes können Container schnell skaliert und flexibel gemanagt werden. 

Auch bei servinga setzen wir auf den Marktführer im Bereich Containerverwaltung und bieten Managed Kubernetes Hosting als IaaS-Lösung an.  

Wie ist sieht der Aufbau von Kubernetes aus?

Kubernetes ist hierarchisch aufgebaut und besteht aus mehreren Ebenen. Die kleinste Einheit in Kubernetes selbst sind dabei die Pods. Genau genommen geht es jedoch noch kleiner: In den Pods liegen die Container. Mehrere Pods fügen sich zu Nodes zusammen, die wiederum in Clustern, der größten Einheit in Kubernetes, organisiert sind. 

Auf jeder der Kubernetes-Ebenen bieten sich Ihnen Monitoring- und Orchestrierungsmöglichkeiten, sodass Sie selbst entscheiden können, wie umfassend oder spezifisch Sie Änderungen vornehmen möchten. 

Pods: Die kleinste Kubernetes-Einheit

In Kubernetes können Pods aus einem oder mehreren Container-Images bestehen. Mehrere Container werden beispielsweise in einem Pod untergebracht, wenn sie auf dieselben Ressourcen zugreifen müssen. Sie teilen sich sowohl den Speicherplatz als auch die Netzwerkressourcen sowie die Anweisungen zur Ausführung der Container. Innerhalb eines Pods können die Container ebenfalls untereinander kommunizieren. 

Am häufigsten wird die Variante verwendet, in der nur ein Container in einem Kubernetes-Pod liegt. Wenn die Container jedoch relativ eng miteinander zusammenhängen, können fortgeschrittene User mehrere Container in einem Pod versammeln. Ein Beispiel hierfür wären ein Web Server und ein Sidecar-Container, der die Daten auf dem Web Server aktualisiert. 

Kubernetes selbst hat die Pods so konzipiert, dass jeweils eine einzelne Instanz einer Anwendung in einem Pod laufen soll. Für die horizontale Skalierung empfiehlt Kubernetes daher, pro Pod eine Instanz zu nutzen. Auf diese Weise replizierte Pods lassen sich als Gruppe gemeinsam verwalten. 

Nodes: Die nächsthöhere Einheit in Kubernetes

Mehrere Pods werden auf der nächsthöheren Ebene in Nodes organisiert. Ein Node kann eine virtuelle Maschine oder auch ein physischer Server sein. Für die Skalierbarkeit eignen sich insbesondere virtuelle Maschinen, da sie nicht an physische Hardware gebunden sind und leicht erweitert werden können. Jeder Node kann mithilfe der Control Planes verwaltet werden. 

Zusätzlich zu den Pods befinden sich in einem Node auch ein Kubelet und ein Kube-proxy. Das Kubelet ist für die Kommunikation mit der Control Plane zuständig und führt die Container den Anweisungen entsprechend aus. Das Kube-proxy hingegen kümmert sich um die Netzwerkkommunikation 

Cluster in Kubernetes: Die höchste Ebene der Kubernetes-Architektur

Ein Cluster besteht in Kubernetes üblicherweise aus mehreren Nodes. Es ist jedoch auch möglich, nur einen Node in einem Cluster zu verwalten. Das ist in der Regel der Fall, wenn Sie den Umgang mit Kubernetes erlernen möchten oder Ihnen nur begrenzte Ressourcen zur Verfügung stehen. Cluster können sowohl als IaaS- als auch als On-Premise-Lösung realisiert werden – hybride Lösungen sind jedoch nicht möglich. In dem Fall müssen Sie verschiedene Cluster erstellen. 

Das Herzstück zur Verwaltung und Orchestrierung Ihrer Container in Kubernetes ist die Control Plane. Die Control Plane erlaubt den Zugriff auf die Schnittstellen, die für die Erstellung eines Containers sowie die Verwaltung während des Lebenszyklus’ der Container verantwortlich sind. Des weiteren ermöglicht sie ebenfalls, globale Entscheidungen für das gesamte Cluster zu treffen sowie Ihr Cluster mit dem API des Cloud-Anbieters zu verbinden.

Wie verhalten sich Cluster zu Nodes und Nodes zu Pods im Kubernetes-Aufbau?

Zumeist sind es mindestens drei Nodes, die einen Cluster ergeben: zwei Worker Nodes und ein Master Node. Innerhalb eines Clusters können auch die Nodes untereinander 

kommunizieren, nach außen stellt das Kubernetes-Cluster eine geschlossene Einheit dar. 

Der API-Server stellt die Masterkomponente dar, die Remote-Services zur Verfügung stellen kann. Mithilfe der API wird außerdem der gewünschte Zustand des Clusters definiert. Der gewünschte Zustand beschreibt, welche Anwendungen oder Workloads auf welchen Ressourcen laufen sollen und wird in Form von sogenannten Manifests, die zu Konfigurationsdateien zusammengefasst werden, kommuniziert. 

Wenn der gewünschte Zustand definiert wurde, ist Kubernetes so aufgebaut, dass es diesen automatisch umsetzt. Hier kommen auch die Selbstheilungskräfte von Kubernetes ins Spiel: Falls einzelne Container und Replikationen ausfallen, kann Kubernetes selbstständig neue Replikationen erstellen und so die geforderte Zahl der Container aufrechterhalten. 

Die Rolle der Control Plane im Aufbau von Kubernetes 

Die Control Plane besteht aus dem API Server, dem Scheduler, dem Controller sowie dem etcd-Backendspeicher. Im etcd werden die gesamten Daten über die Clusterkonfigurationen sowie seinen Zustand gespeichert. Kubernetes empfiehlt, für diese Daten einen Backupplan zu haben, da sie essentiell für den Betrieb Ihres Clusters sind.

Der Scheduler verteilt neue Pods auf Nodes und der Controller überwacht Tasks und Prozesse auf mehreren Kubernetes-Ebenen und führt notwendige Änderungen aus. Dazu zählen unter anderem die Nodes und die Replikationsprozesse, aber auch weitere Prozesse. 

Managed Kubernetes Hosting – Kubernetes made easy

Die Komplexität der Kubernetes-Architektur kann auf den ersten Blick einschüchternd wirken. Aber Sie müssen kein erfahrener Programmierer sein oder eine umfassende IT-Abteilung besitzen, um Kubernetes zu nutzen. Im Managed Kubernetes Hosting übernimmt der Hosting-Anbieter für Sie die Implementierung Ihrer Kubernetes-Cluster und vereinfacht Ihnen die Nutzung von Kubernetes. 

Bei servinga übernehmen wir das Management Ihrer Cluster, aber gewähren Ihnen gleichzeitig vollen Zugriff auf das Kubernetes-Dashboard. Auch Backup und Monitoring können Sie uns überlassen. Unsere Mitarbeiter stehen gerne für Ihre Fragen rund um Kubernetes zur Verfügung. 

Mithilfe des Managed Kubernetes Dashboards können Sie jederzeit die Performance und Auslastung Ihres Clusters einsehen. Auch Skalierung sowie Up- und Downgrades sind mit wenigen Klicks umsetzbar. Mehr über Managed Kubernetes und die Vorteile für Ihr Unternehmen erfahren Sie auch in unserer Übersicht im Blog

Zusammenfassung

Wenn Sie Kubernetes selbst hosten möchten, kann die Installation, Verwaltung und Überwachung einige Zeit zur Einarbeitung und Aufrechterhaltung benötigen. Mithilfe von Managed Kubernetes Services können Sie sich die Implementierung einer Kubernetes-Architektur sowie Verwaltung und Monitoring vereinfachen und dennoch von allen Vorteilen von Kubernetes profitieren.