Jeder Cluster hat einen Masterknoten, der den Kontrollbereich des Clusters steuert. Auf dem Master-Knoten wird ein Scheduler-Service ausgeführt, der automatisiert, wann und wo die Container auf der Grundlage der von den Entwicklern festgelegten Bereitstellungsanforderungen und der verfügbaren Rechenkapazität bereitgestellt werden.
Die Hauptkomponenten eines Kubernetes-Clusters sind der kube-apiserver, etcd, kube-scheduler, kube-controller-manager und cloud-controller-manager:
API-Server: Der API-Server (Programmierschnittstelle) in Kubernetes stellt die Kubernetes API (die Schnittstelle zur Verwaltung, Erstellung und Konfiguration von Kubernetes-Clustern) zur Verfügung und dient als Einstiegspunkt für alle Befehle und Abfragen.
etcd: Der etcd ist ein quelloffener, verteilter Key-Value-Speicher, der dazu dient, die kritischen Informationen zu speichern und zu verwalten, die verteilte Systeme für ihren Betrieb benötigen. In Kubernetes verwaltet das etcd die Konfigurationsdaten, Zustandsdaten und Metadaten.
Scheduler: Diese Komponente verfolgt neu erstellte Pods und wählt Knoten aus, auf denen sie ausgeführt werden sollen. Der Scheduler berücksichtigt Ressourcenverfügbarkeit und -zuweisungsbeschränkungen, Hardware- und Softwareanforderungen und mehr.
Controller-Manager: Der Kubernetes-Controller-Manager besteht aus einer Reihe von integrierten Controllern und führt eine Kontrollschleife aus, die den gemeinsamen Zustand des Clusters überwacht und mit dem API-Server kommuniziert, um Ressourcen, Pods oder Service-Endpunkte zu verwalten. Der Controller-Manager besteht aus separaten Prozessen, die zur Reduzierung der Komplexität gebündelt und in einem Prozess ablaufen.
Cloud-Controller-Manager: Diese Komponente ähnelt in ihrer Funktion dem Controller-Manager. Er ist mit der API eines Cloud-Anbieters verknüpft und trennt die Komponenten, die mit dieser Cloud-Plattform interagieren, von denen, die nur innerhalb des Clusters interagieren.