Eine Kubernetes-Node (auch Worker Node oder Worker-Maschine) ist ein einzelner Server, auf dem Kubernetes Arbeitslasten in Form von Pods ausführt. Während die Control Plane entscheidet, setzen die Nodes die Entscheidungen um: Sie stellen die eigentliche Rechenleistung, den Speicher und das Netzwerk für die Container bereit. Mehrere Nodes bilden zusammen einen Cluster.
Aufbau einer Node
Auf jeder Worker-Node laufen drei zentrale Komponenten:
- Der Kubelet ist der Agent der Node. Er registriert die Maschine am API-Server, empfängt die Pod-Spezifikationen und sorgt dafür, dass die Container so laufen, wie es die gewünschte Konfiguration vorgibt.
- Die Container-Runtime (zum Beispiel containerd oder CRI-O) führt die Container tatsächlich aus und hält sie am Leben.
- Der kube-proxy stellt die Netzwerk-Regeln bereit, über die Services Anfragen an die Pods weiterleiten.
Aufgaben im Betrieb
Der Kubelet meldet der Control Plane regelmäßig den Zustand der Node: freie Ressourcen, laufende Pods und der Health-Status der Container. Diese Meldungen sind die Grundlage für den Scheduler, der neue Pods nur auf passende Nodes verteilt. Fällt eine Node aus, erkennt das der Node-Controller und startet die betroffenen Pods nach Möglichkeit auf anderen Nodes neu. Für die Netzwerkverbindung der Pods ist auf jeder Node zusätzlich ein CNI-Plugin installiert, das die virtuellen Schnittstellen der Container einrichtet.
Virtuelle oder physische Maschinen
Eine Kubernetes-Node kann eine physische Maschine, eine virtuelle Maschine oder ein kleiner Einplatinencomputer wie der Raspberry Pi sein – entscheidend ist, dass darauf die Kubernetes-Komponenten laufen. Verwaltet werden die Nodes entweder per Selbstregistrierung (der Kubelet meldet die Maschine selbst am API-Server an) oder manuell durch den Administrator. Wer Arbeitslasten nicht auf eigenen Servern betreiben möchte, nutzt verwaltete Angebote, bei denen die Nodes von einem Cloud-Anbieter gepflegt werden.
Verwandte Grundlagen: Kubernetes, Docker Swarm.