Ein Kubernetes-Cluster ist ein Verbund aus mindestens einem Steuerungsknoten (Master) und mehreren Arbeitsknoten (Nodes), auf denen containerisierte Anwendungen ausgeführt werden. Der Cluster verwaltet automatisiert die Bereitstellung, Skalierung und Ausfallsicherheit der Container. Durch diese Struktur lassen sich Anwendungen zuverlässig und effizient in verteilten Umgebungen betreiben.

Managed Kubernetes
Kubernetes als Managed Service von IONOS Cloud

Die ideale Plattform für performante und hochskalierbare Container-Anwendungen. Umfassend ins IONOS Cloud Ökosystem integriert und rund um die Uhr professionell betreut.

Was ist ein Kubernetes-Cluster?

Bei Clustern handelt es sich im Allgemeinen um einen Verbund von Rechnern, der nach außen hin in sich geschlossen erscheint. Im Fall von Kubernetes werden statt physischen Rechnern mehrere Knoten zu Clustern zusammengefasst. Die Knoten, die auch Nodes genannt werden, sind entweder physische oder virtuelle Maschinen.

Auf den Kubernetes-Clustern werden die einzelnen Anwendungen ausgeführt. Somit handelt es sich bei Kubernetes-Clustern um die höchste Ebene in der Kubernetes-Hierarchie.

Welche Use Cases für Kubernetes-Cluster gibt es?

Cluster sind ein wichtiger Bestandteil, um die Vorteile von Kubernetes nutzen zu können. Erst die Cluster ermöglichen es Ihnen, Ihre Anwendungen bereitzustellen, ohne diese an konkrete Maschinen zu binden. Sie dienen also vor allem dazu, Ihre Container zu abstrahieren und somit rechnerübergreifend auszuführen. Dabei sind sie nicht an ein bestimmtes Betriebssystem gebunden und daher hochgradig portabel.

Typische Anwendungsbereiche sind:

  • Deployment kompletter Anwendungen: Diese sind containerübergreifend und unabhängig von der zugrunde liegenden Hardware. So lassen sich Updates oder neue Funktionen schnell ausrollen, ohne dass Änderungen an einzelnen Servern nötig sind. Das sorgt für eine konsistente Ausführung Ihrer Anwendungen in jeder Umgebung.
  • Betrieb in Microservice-Architekturen: Hierbei können Anwendungen miteinander kommunizieren und bleiben hoch skalierbar. Einzelne Microservices lassen sich unabhängig voneinander entwickeln, aktualisieren und skalieren, was die Agilität und Ausfallsicherheit der Gesamtanwendung deutlich erhöht.
  • Continuous Integration (CI) / Continuous Delivery (CD): Continuous-Integration- oder Continuous-Delivery-Jobs ermöglichen die Automatisierung von Build-, Test- und Deployment-Prozessen. Dadurch verkürzen sich Entwicklungszyklen, manuelle Fehlerquellen werden reduziert und neue Features oder Patches gelangen schneller in den Produktivbetrieb.
Private Cloud powered by VMware
Cloud? Aber sicher!
  • Jederzeit vollständige Datenhoheit sowie Datenkontrolle
  • Im Einklang mit allen gesetzlichen Regelungen in Deutschland
  • Ohne Vendor Lock-in für höchste Flexibilität

Woraus besteht ein Kubernetes-Cluster?

Ein Kubernetes-Cluster besteht aus einer Steuereinheit, die auch Master-Knoten genannt wird, und einem oder mehreren Worker-Knoten.

Master-Knoten

Der Master-Knoten bildet die Grundlage des gesamten Clusters. Er ist für die Verwaltung des gesamten Clusters zuständig. Dabei kümmert er sich maßgeblich um den Zustand des Clusters, indem er beispielsweise bestimmt, welche Anwendung wann ausgeführt wird. Die Steuereinheit wiederum teilt sich in verschiedene Komponenten auf:

  • API-Server: Der API-Server ist das Frontend des Master-Knotens und koordiniert die Kommunikation mit dem Kubernetes-Cluster. Über die Schnittstelle wird z. B. der Zustand des Clusters definiert. Eine Interaktion mit der Kubernetes-API ist entweder über die Kommandozeile oder über die grafische Benutzeroberfläche in der Google Cloud Console möglich.
  • Scheduler: Der Scheduler kümmert sich um die Verteilung von Containern anhand der zur Verfügung stehenden Ressourcen. Er stellt sicher, dass alle Kubernetes-Pods (Containergruppen) einem Knoten zugeordnet sind und somit ausgeführt werden können.
  • Controller Manager: Mit dem Controller Manager werden die verschiedenen Controller, die im Grunde nichts anderes sind als Prozesse, koordiniert. So wird u. a. sichergestellt, dass bei Ausfällen einzelner Knoten angemessen reagiert wird. Allgemeiner gesprochen kümmert sich der Controller Manager darum, den aktuellen Zustand eines Clusters zu jeder Zeit an den gewünschten Zustand anzupassen.
  • etcd: Bei etcd handelt es sich um eine Komponente der Steuereinheit, die alle wichtigen Cluster-Daten speichert. Somit kann etcd als Backupspeicher für Kubernetes angesehen werden, der in Form eines Key-Value-Storages organisiert ist.

Worker-Knoten

Jeder Cluster hat mindestens einen, in den meisten Fällen aber gleich mehrere Worker-Knoten. Diese führen die Aufgaben und Anwendungen aus, die ihnen von der Steuereinheit zugeteilt werden. Die Worker-Knoten umfassen zwei Komponenten:

  • Kubelet: Kubelet ist eine Komponente von Worker-Knoten, die sicherstellt, dass jeder Container in einem Pod ausgeführt wird. Hierzu interagiert Kubelet mit der eingesetzten Container-Engine, einem Programm zur Containererstellung und -verwaltung.
  • Kube-Proxy: Mithilfe von Kube-Proxy wird sichergestellt, dass Netzwerkregeln eingehalten werden. Außerdem ist die Komponente dafür verantwortlich, eine Verbindungsweiterleitung durchzuführen.

Wie erstellt man Kubernetes-Cluster?

Ein Kubernetes-Cluster kann entweder auf virtuellen oder physischen Rechnern bereitgestellt werden. Um eigene Cluster zu erstellen, gibt es verschiedene Möglichkeiten.

Kubernetes-Cluster mit Minikube aufsetzen

Zum Erstellen eines einfachen Clusters mit einem Worker-Knoten kann Minikube verwendet werden. Hierbei handelt es sich um ein Tool, mit dem sich Kubernetes lokal auf dem eigenen Rechner ausführen lässt. Die Installation von Minikube ist auf allen gängigen Betriebssystemen möglich und wird von vielen Kubernetes-Tutorials ausführlich beschrieben. Um zu überprüfen, ob Ihre Installation erfolgreich war, können Sie im Terminal folgenden Befehl eingeben:

minikube version
bash

Mit folgender Anweisung starten Sie Minikube:

minikube start
bash

Nachdem Sie diesen Befehl ausgeführt haben, startet Minikube eine virtuelle Maschine. In dieser läuft automatisch ein Cluster. Um mit Kubernetes zu interagieren, können Sie die Kubernetes-Kommandozeile benutzen. Ob diese installiert ist, erfahren Sie mit folgendem Terminalbefehl:

kubectl version
bash

Die Details Ihres Clusters können Sie sich mit dem folgenden Befehl anzeigen lassen:

kubectl cluster-info
bash

Auch die einzelnen Knoten, auf denen Ihre Anwendungen laufen können, können Sie direkt im Terminal einsehen:

kubectl get nodes
bash

Kubernetes-Cluster mit kind erstellen

Möchten Sie einen Kubernetes-Cluster mit mehr als einem Knoten erstellen, können Sie hierfür das Tool kind nutzen. Auch kind ist für alle gängigen Betriebssysteme erhältlich. Die Installation erfolgt am einfachsten über einen Paketmanager. In den hier gezeigten Beispielen wird choco für Windows verwendet:

choco install kind
bash

Für einen Cluster mit mehreren Worker-Knoten erstellen Sie nun eine YAML-Konfigurationsdatei in einem beliebigen Verzeichnis. In dieser Datei definieren Sie den Aufbau Ihres Clusters. Eine Konfigurationsdatei für einen Kubernetes-Cluster mit einem Master- und zwei Worker-Knoten kann beispielsweise so aussehen:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

Im Anschluss können Sie den Kubernetes-Cluster gemäß der von Ihnen gewählten Konfiguration mit folgendem Befehl erstellen:

kind create cluster --config beispieldatei.yaml
War dieser Artikel hilfreich?
Zum Hauptmenü