Kubernetes: Container-Orchestrierung verstehen und erste Schritte

Wer mehrere Docker-Container in der Produktion betreibt, stößt schnell an Grenzen: Wie stellt man sicher, dass ein abgestürzter Container neu gestartet wird? Wie verteilt man Last auf mehrere Instanzen? Wie rollt man Updates ohne Ausfallzeit aus? Genau hier kommt Kubernetes ins Spiel – das De-facto-Standard-System zur Container-Orchestrierung, ursprünglich von Google entwickelt und seit 2016 unter dem Dach der Cloud Native Computing Foundation (CNCF).

Was ist Kubernetes?

Kubernetes (kurz: K8s) ist ein Open-Source-System, das das Deployment, die Skalierung und den Betrieb containerisierter Anwendungen automatisiert. Ein Kubernetes-Cluster besteht aus einem oder mehreren Control-Plane-Nodes (früher: Master) und beliebig vielen Worker-Nodes. Der Control Plane übernimmt Planung und Verwaltung; die Worker führen die eigentlichen Container aus.

Die wichtigsten Konzepte im Überblick

Pod

Der kleinste deploybare Baustein in Kubernetes. Ein Pod enthält einen oder mehrere Container, die sich denselben Netzwerk-Namespace und denselben Storage teilen. In der Praxis läuft meist ein Container pro Pod.

Deployment

Ein Deployment beschreibt den gewünschten Zustand einer Anwendung – zum Beispiel "drei Replikas des nginx-Images laufen immer". Kubernetes sorgt dafür, dass dieser Zustand eingehalten wird, und führt Rolling Updates ohne Downtime durch.

Service

Pods erhalten bei jedem Neustart neue IP-Adressen. Ein Service stellt eine stabile Netzwerkadresse bereit und leitet Traffic an die passenden Pods weiter. Typen: ClusterIP (intern), NodePort (extern über Node-Port) und LoadBalancer (Cloud-Loadbalancer).

Ingress

Ein Ingress-Controller (z. B. nginx oder Traefik) nimmt HTTP/HTTPS-Traffic von außen entgegen und routet ihn anhand von Hostnamen oder Pfaden zu den richtigen Services. Damit lässt sich TLS-Terminierung und virtuelles Hosting zentral verwalten.

ConfigMap und Secret

Konfigurationsdaten (Umgebungsvariablen, Konfigurationsdateien) werden in ConfigMaps gespeichert. Sensible Daten wie Passwörter oder API-Keys kommen in Secrets, die Base64-kodiert (und optional verschlüsselt) abgelegt werden.

kubectl: Die Kommandozeile für Kubernetes

kubectl ist das CLI-Werkzeug, mit dem man mit dem Cluster kommuniziert. Die wichtigsten Befehle:

Minikube: Kubernetes lokal ausprobieren

Minikube startet einen vollständigen Kubernetes-Cluster auf dem eigenen Rechner – ideal zum Lernen und Testen. Installation unter Linux/macOS/Windows ist in wenigen Minuten erledigt:

minikube start
kubectl get nodes
minikube dashboard

Alternativ bieten sich kind (Kubernetes in Docker) oder k3d für noch leichtgewichtigere lokale Cluster an.

Tipp: Wer Kubernetes nur ausprobieren möchte, ohne lokal etwas zu installieren, kann die interaktiven Lernumgebungen auf Killercoda nutzen – kostenlos und direkt im Browser.

Managed Kubernetes in der Cloud

Den Control Plane selbst zu betreiben ist aufwändig. Alle großen Cloud-Anbieter bieten daher verwaltete Kubernetes-Dienste an:

Vergleich: Kubernetes vs. Docker Swarm vs. Nomad vs. k3s

Kriterium Kubernetes Docker Swarm Nomad k3s
Komplexität Hoch Gering Mittel Gering–Mittel
Skalierbarkeit Sehr hoch (tausende Nodes) Mittel Hoch Mittel–Hoch
Managed-Angebote GKE, EKS, AKS, Hetzner … Keine aktiven Angebote HCP Nomad (HashiCorp) Rancher, k3s-Cloud
Lernkurve Steil Flach Moderat Moderat
Nicht-Container-Workloads Nein Nein Ja (VMs, Binaries) Nein
Community & Ökosystem Sehr groß (CNCF) Schrumpfend Aktiv (HashiCorp) Wachsend

Wann sollte man Kubernetes NICHT einsetzen?

Achtung: Kubernetes ist kein Allheilmittel. Wer eine einzelne Anwendung oder ein kleines Team von zwei bis drei Entwicklern hat, zahlt mit Kubernetes einen hohen Overhead ohne nennenswerten Mehrwert. Docker Compose oder ein einfacher VPS reichen in vielen Fällen vollkommen aus.

Kubernetes lohnt sich nicht, wenn:

Häufig gestellte Fragen

Was ist der Unterschied zwischen einem Pod und einem Container?
Ein Pod ist die kleinste Kubernetes-Einheit und kann einen oder mehrere Container umfassen. Container innerhalb eines Pods teilen sich Netzwerk und Storage, werden aber als eine Einheit geplant und deployed.
Muss ich Docker kennen, um Kubernetes zu lernen?
Grundkenntnisse in Docker sind sehr hilfreich, da Kubernetes ebenfalls mit Container-Images arbeitet. Kubernetes selbst setzt seit Version 1.24 nicht mehr direkt auf Docker als Container-Runtime, sondern nutzt containerd oder CRI-O.
Was kostet ein Kubernetes-Cluster in der Cloud?
Die Control-Plane-Kosten variieren je nach Anbieter – AKS bietet sie kostenlos an, GKE und EKS berechnen eine geringe Stundenpauschale. Der größte Kostenfaktor sind die Worker-Nodes (virtuelle Maschinen), die nach Laufzeit und Ressourcen abgerechnet werden.
Ist k3s für Produktionsumgebungen geeignet?
Ja. k3s von Rancher ist ein zertifiziertes Kubernetes-Distribution und wird in der Praxis sowohl im Edge-Computing als auch in kleinen bis mittleren Produktivumgebungen erfolgreich eingesetzt.