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.