Wissen von A bis Z

Kubernetes

Kubernetes ist der Dirigent eines riesigen Container-Orchesters: Er sorgt dafür, dass jedes Instrument zur richtigen Zeit spielt und niemand aus dem Takt kommt.

Kubernetes (häufig ‚k8s' abgekürzt) ist die führende Open-Source-Plattform für die Orchestrierung containerisierter Workloads. Sie automatisiert Deployment, Skalierung, Selbstheilung und Vernetzung von Containern auf einem Cluster aus mehreren Knoten. Die Architektur trennt strikt zwischen Control Plane (API-Server, etcd als Cluster-Datenbank, Scheduler, Controller-Manager, Cloud-Controller-Manager) und Worker-Knoten, auf denen Kubelet, Kube-Proxy und eine Container-Runtime (containerd, CRI-O) die eigentlichen Workloads ausführen. Anwender beschreiben den gewünschten Zustand deklarativ in YAML- oder JSON-Manifesten, Kubernetes vergleicht ihn kontinuierlich mit dem Ist-Zustand und steuert die Konvergenz über Reconciliation Loops in spezialisierten Controllern.

Eingesetzt wird Kubernetes als Plattform für Microservices, Web-APIs, Batch- und ML-Workloads, statefulle Anwendungen über StatefulSets und Persistent Volumes sowie als Substrat für eigene Plattformen (Internal Developer Platforms). Über Custom Resource Definitions (CRDs) und das Operator Pattern lässt sich die Kubernetes-API um beliebige domänenspezifische Ressourcen erweitern. Die Cloud Native Computing Foundation (CNCF) bündelt ein umfangreiches Ökosystem ergänzender Projekte — Service Meshes, Ingress-Controller, Storage-Treiber, Observability-Tools.

Der Einsatzzweck und das gelöste Problem ergeben sich aus der zunehmenden Verbreitung von Containern: Einzelne Docker-Container sind leicht zu starten, aber das verteilte Management vieler Container — Platzierung, Health-Checks, Rolling Updates, Service Discovery, Lastverteilung, Secrets, Konfiguration, Auto-Skalierung — ist ohne Orchestrator schnell unbeherrschbar. Kubernetes liefert ein einheitliches API-Modell für genau diese Aufgaben und etabliert sich damit als ‚Cloud-Betriebssystem' im Sinn einer abstrahierenden Schicht über heterogenen Infrastrukturen.

Historisch wurde Kubernetes von Google im Juni 2014 als Open-Source-Projekt veröffentlicht, gespeist aus den internen Erfahrungen mit den Cluster-Managern ‚Borg' und ‚Omega'. Im Juli 2015 erschien die Version 1.0, gleichzeitig wurde das Projekt an die neu gegründete Cloud Native Computing Foundation übergeben. Der inzwischen etablierte Release-Rhythmus liegt bei drei bis vier Minor-Releases pro Jahr; jede Version durchläuft mehrere Reifegrade (Alpha, Beta, Stable). Wichtige Meilensteine sind die Einführung der Custom Resource Definitions (1.7), des CSI-Storage-Standards, der Server-Side Apply (1.16), des Pod Security Admission (1.25, ersetzt PodSecurityPolicy) sowie das schrittweise Auslaufen von Docker als Container-Runtime zugunsten von containerd und CRI-O.

Eingeführt wurde Kubernetes durch prägenden Persönlichkeiten wie Joe Beda, Brendan Burns und Craig McLuckie als ursprünglichen Mitautoren. ‚Kubernetes' kommt aus dem Altgriechischen und bedeutet ‚Steuermann' oder ‚Pilot' — derselbe Wortstamm steckt in ‚Kybernetik'. Auf das Logo (sieben Speichen) und den Beinamen ‚k8s' (acht Buchstaben zwischen K und s) hat das Team bewusst angespielt: Sieben Speichen sollen an Star Trek erinnern, weil ein interner Vorläufer von Kubernetes bei Google den Codenamen ‚Project Seven of Nine' trug — eine Hommage an die Borg-Heritage und gleichzeitig an die gleichnamige Star-Trek-Figur.

Kubernetes gehört bei bluehands zum Standard Technologiestack. Im Kontext von Carbon Aware Computing haben wir mehrere Open-Source Projekte der Community zur Verfügung gestellt.

Zurück