Kubernetes ist eine Open-Source-Plattform, die Deployment, Skalierung und Betrieb containerisierter Anwendungen über viele Maschinen hinweg automatisiert. Die Kernidee ist deklarativ: Sie beschreiben den gewünschten Endzustand – drei Replikas dieses Containers, so viel Arbeitsspeicher, erreichbar auf diesem Port –, und das System arbeitet fortlaufend daran, die Wirklichkeit daran anzugleichen: Es startet neu, plant um und skaliert, ohne dass Sie eingreifen müssen.
Das Wichtigste in Kürze
| Frage | Antwort |
|---|---|
| Was es ist | Ein Steuerungssystem, das viele Maschinen zu einem Pool für Container zusammenfasst |
| Die Kernidee | Soll-Zustand deklarieren; der Cluster gleicht die Wirklichkeit dauerhaft daran an |
| vs. Docker | Docker baut und startet Container; Kubernetes orchestriert ganze Flotten davon |
| Name | Griechisch für “Steuermann”; K8s = K + acht Buchstaben + s |
| Die ehrliche Einschränkung | Leistung im Flottenmaßstab, Komplexität im Flottenmaßstab – viele Teams brauchen keins von beidem |
Das Manifest: So sprechen Sie mit Kubernetes
Alles ist eine Deklaration. Das hier ist ein minimales, echtes Deployment – mit Anmerkungen in verständlichem Deutsch:
apiVersion: apps/v1
kind: Deployment # "halte N Kopien davon am Laufen"
metadata:
name: api
spec:
replicas: 3 # der Soll-Zustand: drei Pods
selector:
matchLabels: { app: api }
template: # was jeder Pod enthält
metadata:
labels: { app: api }
spec:
containers:
- name: api
image: registry.example.com/api:1.4.2
ports: [{ containerPort: 8080 }]
resources:
limits: { memory: "256Mi", cpu: "500m" }
# Anwenden, einen Pod beenden, zusehen, wie Kubernetes ihn wiederbelebt. Genau das ist das Produkt.
Zum Vergleich – dasselbe Ergebnis (ein deploytes, skaliertes, selbstheilendes Backend) als Dienst genutzt, bei dem Manifest, Cluster und der Abgleich um 3 Uhr nachts das YAML von jemand anderem sind:
// JavaScript / Node.js — Back4app JS SDK
// The workload the manifest would have described — already running
const status = await Parse.Cloud.run('healthCheck');
console.log(status); // scheduling, scaling, restarts: the platform's job // Flutter / Dart — Back4app Flutter SDK
final function = ParseCloudFunction('healthCheck');
final response = await function.execute();
if (response.success) {
print(response.result); // no pods, no manifests, no cluster to run
} // iOS / Swift — Back4app Swift SDK
ParseCloud.callFunction("healthCheck") { result in
if case .success(let status) = result {
print(status) // no pods, no manifests, no cluster to run
}
} // Android / Kotlin — Back4app Android SDK
ParseCloud.callFunctionInBackground<String>("healthCheck", hashMapOf()) { status, e ->
if (e == null) Log.d("Health", status) // no pods, no manifests, no cluster
} Ein Blick in den Cluster
Das Vokabular in je einer Zeile: Ein Cluster ist das Gesamtsystem; ein Node ist eine Maschine; ein Pod ist die kleinste deploybare Einheit (ein oder mehrere Container, die sich Netzwerk und Speicher teilen); ein Deployment verwaltet replizierte Pods mit Rolling Updates und Rollbacks; ein Service gibt kurzlebigen Pods eine stabile Adresse; ein Ingress leitet Traffic von außen hinein; ConfigMaps und Secrets transportieren die Konfiguration; Namespaces teilen einen Cluster zwischen Teams auf. Die offizielle Übersicht ist der maßgebliche nächste Schritt in die Tiefe.
Kubernetes vs. Docker
| Frage | Docker | Kubernetes |
|---|---|---|
| Aufgabe | Container bauen, paketieren, starten | Container über Maschinen hinweg orchestrieren |
| Reichweite | Eine Maschine | Ein Cluster |
| Einheit | Container | Pod (aus Containern) |
| Skalierung | Manuell | Deklarativ und automatisch |
| Verhältnis | Baut die Images | Führt sie aus – über jede standardkonforme OCI-Runtime |
Die ewige Verwechslung hat ein Datum: Seit v1.24 (2022) hat Kubernetes seinen Docker-spezifischen Runtime-Shim entfernt und spricht nur noch mit standardkonformen Container-Runtimes. Kaputt ging nichts – Images folgen dem offenen OCI-Standard –, aber die Rollen wurden dadurch klar: Docker ist die Werft, Kubernetes die Hafenbehörde. Der Name wusste das schon immer: Kubernetes ist griechisch für Steuermann – das Projekt wurde im Juni 2014 als Open Source veröffentlicht, erreichte 2015 Version 1.0 und legte den Grundstein für die CNCF. Damit wurde ein Jahrzehnt Erfahrung im Betrieb von Containern im Flottenmaßstab zu einem öffentlichen Gemeingut.
Typische Anwendungsfälle
- Microservice-Flotten. Dutzende Dienste mit unabhängiger Skalierung und unabhängigen Deployments – genau der Workload, für den Kubernetes geformt wurde.
- Plattform-Teams. Aufbau einer internen Plattform auf einem einheitlichen Unterbau, der in jeder Cloud und On-Premises identisch läuft.
- Große Workloads mit Lastspitzen. Batch-Jobs, Daten-Pipelines, ML-Training – dicht gepackt auf gemeinsam genutzter Kapazität.
- Multi-Cloud- und Portabilitätsstrategien. Die Compute-Schicht einer Abwehr gegen Vendor-Lock-in – mit der Einschränkung, dass die umgebenden verwalteten Dienste weiterhin binden.
- Selbstheilende Produktionsumgebungen. Überall dort, wo “um 3 Uhr nachts ist eine Maschine ausgefallen” ein Nicht-Ereignis sein muss statt eines nächtlichen Alarms.
Sollten Sie Kubernetes betreiben? Eine Entscheidungsmatrix
| Betreiben Sie Kubernetes, wenn… | Verzichten Sie darauf, wenn… |
|---|---|
| Viele Dienste, viele Teams, unabhängige Skalierung | Eine App, ein Team, vorhersehbare Last |
| Ein Plattform-Team den Cluster als sein Produkt verantwortet | Niemand sich hauptberuflich um den Betrieb kümmert |
| Portabilität zwischen Clouds eine harte Anforderung ist | Time-to-Market die einzige Anforderung ist |
| Die Workloads containerisiert und flottenartig sind | Das Backend nur Standard-CRUD + Authentifizierung braucht |
| Sie einfachere Orchestrierung hinter sich gelassen haben | Eine Compose-Datei oder eine verwaltete Plattform noch ausreicht |
Der stille Konsens der Branche: Die meisten Teams, die Kubernetes betreiben, liegen unterhalb des Maßstabs, ab dem es sich rechnet. Die Leiter der Alternativen – ein Host mit Compose-Datei, ein verwalteter Container-Dienst, ein PaaS, ein BaaS – deckt alles bis zu echten Flottenproblemen ab, und Managed Kubernetes deckt den Großteil des Rests ab.
Grenzen und Trade-offs
- Die Lernkurve ist der Schatten des Produkts. Pods, Services, Ingress, RBAC, Operators, Helm – Routine misst sich in Monaten, und der Cluster wartet nicht.
- Betriebliche Angriffsfläche. Upgrades, Zertifikatsrotation, Netzwerk-Plugins und der Zustand des State Stores verzeihen keine Fehler; deshalb haben sich verwaltete Control Planes durchgesetzt.
- Ausufernde YAML-Dateien. Deklarative Konfiguration wird im großen Maßstab zu einer eigenen Codebasis, mit eigenen Reviews, Bugs und Drift.
- Es orchestriert Container, keine Architektur. Ein schlecht geschnittenes System auf Kubernetes bleibt dasselbe System, nur jetzt verteilt – der Cluster verstärkt das Design, ob gut oder schlecht.
- Kubernetes ist kein PaaS. Es bringt bewusst kein CI/CD, keine Standard-Datenbank und keine Dienste auf Anwendungsebene mit – die Plattform darüber müssen Sie selbst zusammenbauen, und genau diese Arbeit verkaufen höhere Abstraktionen als Produkt zurück.
Kubernetes mit Back4app
Back4app ist eine Open-Source-Plattform für Backend as a Service (BaaS), die eine verwaltete Datenbank, automatisch generierte REST- und GraphQL-APIs, Authentifizierung, Dateispeicher und Serverless-Funktionen mit Cloud Code kombiniert. Das Verhältnis zu Kubernetes ist eine ehrliche Arbeitsteilung: Was die meisten Anwendungsteams tatsächlich von einem Cluster wollen – deployte, skalierte, selbstheilende Backend-Dienste –, liefert die BaaS-Schicht, ohne dass Sie ein einziges Manifest schreiben. Und für Workloads, die wirklich Container sind, betreibt Back4app Containers diese als verwalteten Dienst: Image pushen, Orchestrierung erhalten, ohne selbst den Hafen zu betreiben.
Häufige Fragen
Was ist Kubernetes, einfach erklärt?
Ein Dirigent für Container. Sie legen fest, was laufen soll – diese App, drei Kopien, so viel Arbeitsspeicher –, und Kubernetes gleicht die Wirklichkeit fortlaufend daran an: Es verteilt Container auf Maschinen, startet sie nach einem Absturz neu, skaliert sie mit der Last und leitet den Traffic an funktionsfähige Kopien. So wird aus einer Flotte von Maschinen ein einziger programmierbarer Pool.
Wofür steht K8s?
Es ist ein Numeronym: K, dann acht Buchstaben, dann s – nach demselben Muster wie i18n für Internationalisierung. Der Name selbst ist griechisch: Kubernetes bedeutet Steuermann oder Lotse, also die Person, die das Schiff lenkt. Deshalb tragen so viele Werkzeuge im Ökosystem nautische Namen, und das Logo ist ein Steuerrad.
Ist Kubernetes dasselbe wie Docker?
Nein – beide beantworten unterschiedliche Fragen. Docker baut und startet einzelne Container auf einer Maschine; Kubernetes orchestriert viele Container über viele Maschinen. Sie ergänzen sich: Mit Docker gebaute Images laufen auf Kubernetes-Clustern. Seit Version 1.24 nutzt Kubernetes Docker selbst nicht mehr als Runtime, sondern spricht mit jeder standardkonformen Container-Runtime – mit Docker gebaute Images funktionieren aber genau wie zuvor, weil Images dem offenen OCI-Standard folgen.
Was sind ein Cluster, ein Node und ein Pod?
Der Cluster ist das Gesamtsystem: eine Control Plane plus Worker-Maschinen. Ein Node ist eine einzelne Maschine darin, physisch oder virtuell. Ein Pod ist die kleinste deploybare Einheit – ein oder mehrere eng gekoppelte Container, die sich eine Netzwerkidentität und Speicher teilen. Einen einzelnen Pod starten Sie praktisch nie direkt; Sie deklarieren ein Deployment, und Kubernetes verwaltet die Pods für Sie.
Was ist die Control Plane von Kubernetes?
Das Gehirn des Clusters: ein API-Server, über den sämtliche Kommunikation läuft, ein Key-Value-Store mit dem Soll- und Ist-Zustand des Clusters, ein Scheduler, der entscheidet, auf welchem Node jeder Pod landet, und Controller, die die Wirklichkeit fortlaufend mit den Deklarationen abgleichen. Auf den Worker-Nodes laufen ein Agent, ein Netzwerk-Proxy und die Container-Runtime, die die Pods tatsächlich ausführt.
Wer hat Kubernetes entwickelt, und seit wann gibt es es?
Kubernetes wurde im Juni 2014 als Open Source veröffentlicht und ging aus mehr als einem Jahrzehnt interner Erfahrung mit Container-Orchestrierung bei einem der größten Technologieunternehmen hervor. Im Juli 2015 erreichte es Version 1.0 und wurde an die neu gegründete Cloud Native Computing Foundation (CNCF) übergeben. Das in Go geschriebene Projekt ist seitdem zu einem der größten Open-Source-Projekte der Welt geworden.
Wann ist Kubernetes überdimensioniert?
Häufiger, als der Hype zugibt. Ein kleines Team mit einer Handvoll Container und vorhersehbarem Traffic gewinnt durch einen Cluster wenig und erbt eine steile Lernkurve, ausufernde YAML-Dateien und eine Betriebsdisziplin, die für Probleme im Flottenmaßstab gemacht ist. Einfachere Wege – eine Compose-Datei auf einem Host, eine verwaltete Container-Plattform, ein PaaS oder ein BaaS – decken die meisten Workloads unterhalb eines ernsthaften Maßstabs ab.
Was ist Managed Kubernetes?
Ein Cloud-Dienst, der die Control Plane für Sie betreibt – Upgrades, Verfügbarkeit, Zustandsspeicher –, während Sie Workloads und Node-Pools verwalten. Er nimmt Ihnen die schwierigste Betriebsschicht ab, und so läuft der Großteil von Kubernetes in der Produktion tatsächlich. Einen Cluster vollständig selbst zu betreiben, bleibt Plattform-Teams mit eigener Expertise vorbehalten; die Control Plane ist Infrastruktur, die keine Fehler verzeiht.