Kubernetes Nodes

Ein Kubernetes Node ist ein einzelner Arbeitsknoten in einem Kubernetes-Cluster, der aus Infrastrukturkomponenten besteht, auf der Container-Workloads (Pods) laufen. Dabei stellen Nodes die notwendigen Ressourcen wie Rechenleistung und Speicher zur Verfügung.

Kubernetes Node: Definition

In einem Kubernetes-Cluster sind Nodes essenzielle Bausteine. Jeder Node stellt eine physische oder virtuelle Maschine dar und bietet Ressourcen wie CPU, Arbeitsspeicher und Speicherplatz. Diese Nodes arbeiten zusammen, um die Container-Workloads aufzunehmen und zu verwalten. Sie übernehmen Aufgaben wie das Starten, Überwachen und Skalieren von Containern, um für eine reibungslose Ausführung von Anwendungen zu sorgen.

Kubernetes Nodes sind flexibel skalierbar, da sie je nach Bedarf hinzugefügt oder entfernt werden können. Sie unterstützen eine effiziente Ressourcennutzung und passen sich dynamisch an die Anforderungen der laufenden Anwendungen an. Zudem fördert die Verteilung von Nodes über verschiedene Server die Ausfallsicherheit des Clusters. Durch die kluge Koordination über Kubernetes ReplicaSets und Kubernetes DaemonSets können Container-Anwendungen sicher und einfach verwaltet werden.

Diagramm eines Clusters mit Kubernetes Nodes
Diagramm eines Kubernetes-Clusters

Node-Status

Der Node-Status gibt Auskunft über den Zustand eines Arbeitsknotens im Kubernetes-Cluster. Er zeigt an, ob der Node ordnungsgemäß funktioniert und in der Lage ist, Pods zu hosten.

  • Addresses: Die Adressen eines Nodes bieten Einblick in seine Erreichbarkeit im Netzwerk. Dazu gehören IP-Adressen, Hostnamen und Ports. Ein Node kann mehrere Adressen haben, und diese sind entscheidend für die Kommunikation innerhalb des Clusters.
  • Conditions: Die Bedingungen reflektieren den aktuellen Gesundheitszustand des Kubernetes Nodes. Typische Bedingungen umfassen Ready (Bereit), OutOfDisk (Platzmangel), MemoryPressure (Arbeitsspeicherdruck) und DiskPressure (Festplatten-Druck). Diese Meldungen geben an, ob Nodes einsatzfähig sind oder bestimmte Ressourcenknappheiten auftreten.
  • Capacity: Die Kapazität eines Nodes bezieht sich auf die verfügbaren Ressourcen wie CPU, Arbeitsspeicher und Festplattenspeicher. Diese Informationen sind wichtig, um zu verstehen, wie viel Arbeitslast ein Node aufnehmen kann. Kubernetes nutzt diese Daten, um zu entscheiden, wo Container platziert werden sollen, basierend auf den Ressourcenanforderungen.
  • Info: Der Informationsabschnitt kann zusätzliche Details über den Node enthalten, zum Beispiel das Betriebssystem, die Kernel- oder Kubelet-Version und andere Metadaten.
Tipp

Mit Managed Kubernetes von IONOS können Sie Container-Anwendungen in verteilten Produktionsumgebungen problemlos orchestrieren. Profitieren Sie von Sicherheit, Transparenz und Kontrolle im laufenden Betrieb, und das alles mit minimalem administrativen Aufwand.

Node Heartbeat

Heartbeats senden periodisch Statusinformationen an den Kubernetes-Master. Diese Statusaktualisierungen dienen dazu, dem Master mitzuteilen, dass der Node noch verfügbar und einsatzbereit ist.

Im Kontext von Kubernetes gibt es zwei Formen von Heartbeats für Nodes:

  • Aktualisierungen des .status eines Nodes: Hierbei handelt es sich um regelmäßige Statusaktualisierungen, die ein Node an den Kubernetes-Master sendet. Der Status beinhaltet Informationen über die Verfügbarkeit und den Zustand des Nodes.
  • Lease-Objekte im Namespace kube-node-lease: Jeder Node ist mit einem sogenannten Lease-Objekt im Namespace kube-node-lease verknüpft. Ein Lease-Objekt ist im Wesentlichen eine Art Mietvereinbarung, die vom Node an den Master gesendet wird. Durch diese Lease wird bestätigt, dass der Node nach wie vor aktiv ist und Ressourcen im Cluster beansprucht.

Kubernetes Node Management

Die drei Hauptkomponenten, die zusammen das Node-Management in einem Kubernetes-Cluster bilden, sind der Node-Controller, Kubelet und das Befehlszeilentool kubectl.

Node-Controller

Der Node-Controller ist eine Kernkomponente von Kubernetes, die für die Verwaltung von Nodes zuständig ist. Er überwacht die Heartbeats in Form von Statusaktualisierungen und Lease-Objekten, um sicherzustellen, dass die Nodes reibungslos funktionieren. Wenn der Node-Controller feststellt, dass ein Node nicht mehr aktiv ist und keine Heartbeats empfangen werden, kann er entsprechende Maßnahmen ergreifen, wie das Neuplanen von Pods auf anderen verfügbaren Nodes. Der Node-Controller spielt somit eine zentrale Rolle bei der Aufrechterhaltung der Verfügbarkeit und Integrität des Node-Pools im Kubernetes-Cluster.

Kubectl

kubectl ist ein Befehlszeilentool, durch das Benutzerinnen und Benutzer mit einem Kubernetes-Cluster interagieren. Mit kubectl können Sie Befehle an den Kubernetes-Master senden, um Ressourcen im Cluster zu erstellen, zu überwachen, zu aktualisieren und zu löschen. Das Tool ist vielseitig und ermöglicht die Verwaltung von Deployments, Services, Pods, ConfigMaps und anderen Kubernetes-Objekten.

Kubelet

Kubelet ist auf jedem Kubernetes Node im Cluster vorhanden und verantwortlich für die Kommunikation zwischen dem Node und dem Master. Die Hauptaufgabe des Kubelets besteht darin, zu kontrollieren, dass Container-Pods gemäß den Anweisungen des Kubernetes-Masters gestartet, überwacht und beendet werden.

Im Kubernetes-Tutorial zeigen wir Ihnen, wie Sie Ihr eigenes Kubernetes-Cluster einrichten können.

Managed Kubernetes von IONOS

Der einfache Weg zur Verwaltung von Container-Workloads. Vollautomatisiertes Setup von Kubernetes Clustern und maximale Transparenz und Kontrolle der K8s Cluster.

Persistent Storage
K8s 24/7 voll supportet
Automatisiertes Cluster Setup