kube-apiserver ist das zentrale Frontend der Kubernetes-Control-Plane: Alle Anfragen — von kubectl über das Kubelet bis zu internen Controllern — laufen über diese eine REST-API. Er nimmt die gewünschten Zustände (Desired State) als Manifeste entgegen, validiert und autorisiert sie und schreibt sie in den Cluster-Speicher etcd. Ohne API-Server ist kein Zugriff auf den Cluster möglich.
Aufgaben im Überblick
- REST-API: stellt die gesamte Kubernetes-API bereit (Pods, Services, Deployments, Namespaces).
- Validierung: prüft Anfragen gegen das API-Schema und lehnt ungültige Manifeste ab.
- Autorisierung: setzt RBAC-Regeln und Authentifizierungs-Methoden (Zertifikate, Tokens) durch.
- Single Source of Truth: liest und schreibt den gesamten Cluster-Zustand in etcd.
- Koordination: vermittelt zwischen Clients, Scheduler und Controller-Manager.
Wie eine Anfrage abläuft
Ein kubectl apply schickt das Manifest per HTTPS an den API-Server. Der authentifiziert den Benutzer, validiert die Daten, autorisiert die Aktion und speichert das Objekt in etcd. Anschließend bemerken die Controller die Änderung und arbeiten den gewünschten Zustand ab — etwa der kube-scheduler, der den neuen Pod einem Knoten zuweist.
Skalierung und Abgrenzung
Der kube-apiserver ist bewusst zustandslos und lässt sich horizontal skalieren — mehrere Instanzen verteilen die Last, die eigentlichen Daten liegen zentral in etcd. Während der API-Server entscheidet und vermittelt, führt das Kubelet die Aufgaben auf den Worker-Knoten aus. Verwandte Grundlagen: Kubernetes, etcd, kube-scheduler, Kubelet, Container-Runtime.