Nodes sind dafür verantwortlich die Workloads eines Kubernetes-Clusters bereitzustellen. Generell gibt es in Kubernetes zwei Arten von Nodes, die Master-Nodes und die Worker-Nodes.
Master-Nodes verstehen
Master-Nodes steuern den Kubernetes-Cluster. Diese Nodes sind vor allem für das System verantwortlich, nicht für den Betrieb der Workloads. Ein Cluster kann aus mehreren Master-Nodes bestehen. Das erhöht die Ausfallsicherheit. Der API-Server hat die Aufgabe eine Schnittstelle zur Administration zur Verfügung zu stellen. Idealerweise sollte eine ungerade Anzahl von Nodes betrieben werden, damit es immer eine Mehrheit an Clusterstimmen gibt.
Der API-Server ermöglicht das Steuern des kompletten Clusters. Der Controller-Manager hat die Aufgabe den Cluster zu überprüfen und sicherzustellen, dass der Cluster funktioniert. Der Scheduler startet die Dienste und interagiert mit den Worker-Nodes.
Control-Panels stellen eine grafische Oberfläche dar, die wiederum mit dem API-Server verbunden ist. Die Datenbank eines Clusters wird in einer etcd-Datenbank gespeichert. Alle Master verfügen über eine eigene Instanz der Datenbank. Diese Datenbank müssen synchronisiert sein.
Die Verwaltung von Clustern wird oft mit „kubectl“ verwaltet.
Worker-Nodes in Kubernetes
Worker-Nodes führen die einzelnen Workloads aus, also im Grunde genommen die Container im Cluster. Die Worker-Nodes sind einfacher aufgebaut und kommunizieren mit den Master-Nodes.
Das Kubelet in einem Worker-Node stellt die Instanz dar, um einen Worker-Node im Cluster zu integrieren. Die Workloads werden über Container Runtimes Interface (CRI) auf Worker-Nodes bereitgestellt, zum Beispiel mit Docker. Ein Kubernetes Cluster kann auch mehrere CRIs bereitstellen.
Kube Proxy stellt den Zugriff auf das Netzwerk sicher und verwaltet die IP-Adressen des Nodes.