| Typ | Entität |
|---|---|
| Kategorie | werkzeug |
| Quellen | Quelle - Docker Bootcamp Quelle - Recherche - Docker heute 2026 |
| Erstellt | 2026-09-27 |
| Aktualisiert | 2026-09-27 |
| Tags | software, container, cluster, cloud, open-source |
Kubernetes (kurz K8s) ist die verbreitetste Plattform, um Container-Anwendungen auf Clustern zu betreiben, zu verteilen und zu skalieren. Ursprünglich von Google entwickelt, heute von der Cloud Native Computing Foundation getragen. Die kleinste Einheit ist der Pod, Anwendungen laufen als Deployments und werden über Services erreichbar.
Überblick
Laut Quelle - Docker Bootcamp (Folien 257–271):
- Der Name ist griechisch für Steuermann, K8s steht für die acht ausgelassenen Buchstaben. In Go geschrieben.
- Deutlich mächtiger als Docker Swarm und nicht an Docker gebunden, sondern für verschiedene Container-Laufzeiten gebaut.
- Was Kubernetes nicht macht: Es baut und deployt keinen Quellcode (dafür Docker), stellt keine physischen Rechner bereit und bietet keine Dienste auf Anwendungsebene.
- Meist stellt es der Cloud-Anbieter bereit (AWS, Google Cloud, DigitalOcean). Zertifizierung: Certified Kubernetes Administrator (CKA).
- Der Kurs will nur so viel vermitteln, dass man „sich mit einem Cloud-Administrator über Kubernetes austauschen“ kann (Folie 258).
Architektur
Control Plane (Steuerungsebene, kann für Ausfallsicherheit auf mehrere Nodes verteilt werden):
kube-apiserver– einziger Zugang zum Cluster, stellt die API bereitetcd– Speicher für Konfiguration, Zustand und Metadatenkube-scheduler– verteilt Pods nach freien Ressourcen auf die Nodeskube-controller-managerundcloud-controller-manager– Überwachungsschleifen, reagieren auf Ausfälle
Auf jedem Node (physische oder virtuelle Maschine): kubelet (führt Pods aus), kube-proxy (Netzwerkregeln und Weiterleitung) und eine Container-Laufzeit (Folien 265–268).
Objekte
- Pod: kleinste Einheit, eine Hülle um einen oder wenige zusammengehörige Container, die auf derselben Maschine laufen. Pods sind Wegwerfobjekte: Bei neuer Konfiguration werden sie gelöscht und neu erzeugt. Die Abstraktion macht die Container-Technik austauschbar (Folie 263).
- Workloads (Folie 285): ReplicaSet hält eine bestimmte Zahl Pod-Kopien am Laufen, Deployment verwaltet ein ReplicaSet und erlaubt Updates auf neue Versionen (für zustandslose Anwendungen), StatefulSet (zustandsbehaftet), DaemonSet (ein Pod auf jedem Node), Job/CronJob (einmalige oder geplante Aufgaben).
- Service: gibt einer Gruppe von Pods eine feste Adresse und einen DNS-Namen, auch wenn einzelne Pods ersetzt werden und neue IP-Adressen bekommen. Arten: ClusterIP (nur intern, Standard), NodePort (fester Port auf allen Nodes, meist 30000–32767), LoadBalancer (von aussen über den Lastverteiler des Cloud-Anbieters) (Folien 303–305).
- Pods finden andere Dienste über deren DNS-Namen im Cluster, etwa ein Flask-Frontend sein Redis-Backend (Folie 322).
- Labels (
app: nginx) markieren Objekte, Selektoren (matchLabels) finden sie wieder. Das Deployment findet seine Pods überspec.selector.matchLabels, der muss zu den Labels der Pod-Vorlage passen (Folien 294–297).
Ausprobieren: Minikube und kubectl
- Minikube richtet lokal einen Ein-Node-Cluster ein, hier als Docker-Container:
minikube start | status | dashboard | stop | delete(Folien 273–279). - kubectl ist das Befehlszeilenwerkzeug für jeden Cluster (Folien 282–301).
kubectl get nodes | pods | deployments | services | all
kubectl create deployment nginx-deployment --image=nginx --replicas=3 --port=80
kubectl apply -f deployment.yaml
kubectl expose deployment nginx-deployment --port=80
kubectl logs <pod> ; kubectl describe pod <pod> ; kubectl exec -it <pod> -- /bin/bash
minikube service nginx-deployment # im Browser öffnen
Eine Deployment-Beschreibung als YAML, die man ins Git legen und reproduzierbar anwenden kann (Folie 292, Umgebungsvariable aus Folie 325):
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
env:
- name: ENV_VAR
value: "Der Wert"
Jede Konfigurationsdatei hat apiVersion, kind, metadata und spec (Zielzustand), das System ergänzt status (Istzustand) (Folie 291).
Eigene Images in Minikube: Der Cluster hat seinen eigenen Docker-Daemon. Mit eval $(minikube docker-env) baut man das Image direkt dort. In der Praxis liegt es stattdessen in einer privaten Registry des Cloud-Anbieters oder auf Docker Hub (Folien 316–317).
Quelle - Docker Bootcamp nennt „Container Runtime: z.B. Docker“ (Folie 267) und „2015 als Open Source veröffentlicht“ (Folie 260). Laut Quelle - Recherche - Docker heute 2026 wurde Kubernetes am 6. Juni 2014 angekündigt und veröffentlicht, Version 1.0 kam am 21. Juli 2015, zusammen mit der Gründung der CNCF. Die direkte Docker-Anbindung (dockershim) ist seit Kubernetes 1.24 (Mai 2022) entfernt. Docker Engine funktioniert nur noch über den Adapter cri-dockerd, üblich sind containerd oder CRI-O. Mit Docker gebaute Images laufen aber unverändert weiter.
Stand 2026
Aktuell ist Kubernetes 1.37 (26. August 2026), unterstützt werden immer die drei neuesten Nebenversionen (1.37, 1.36, 1.35), neue kommen etwa alle vier Monate und erhalten rund ein Jahr Korrekturen (Quelle - Recherche - Docker heute 2026).
Das deklarative Prinzip (Zielzustand in YAML im Git, das System gleicht an) heisst heute oft GitOps. Es ist eng verwandt mit der Arbeitsweise dieses Wikis: Die Wahrheit liegt versioniert im Repository, die Webseite wird daraus automatisch erzeugt. Das ist Allgemeinwissen und nicht eigens recherchiert.
Verwandt
- Container-Orchestrierung – Swarm und Kubernetes im Vergleich
- Microservices – die Architektur, für die Kubernetes gedacht ist
- Docker – baut die Images, die Kubernetes ausführt
- Container – die Einheiten in den Pods
- Docker Compose – YAML-Beschreibung auf einem einzelnen Rechner
