Lektion 03 · Mental-Modell

Die Objekt-Hierarchie

Warum hinter fast jedem Pod ein Deployment steckt — und du nie nackte Pods deployst.

Du kannst einen Pod direkt erstellen. Solltest du aber fast nie. Stirbt der Node, ist der Pod weg — niemand bringt ihn zurück. Diese Lektion zeigt die Kette, die für Selbstheilung und Updates sorgt.

1. Die drei Schichten

Matrjoschka 🪆: Deployment → ReplicaSet → Pod
Eine Puppe in der Puppe in der Puppe. Du fasst nur die äußerste an (Deployment); die inneren erzeugt Kubernetes für dich.
SchichtJob
PodFührt die Container aus. Sterblich, ersetzbar.
ReplicaSetHält genau N gleiche Pods am Leben. Stirbt einer, erstellt es einen neuen.
DeploymentVerwaltet ReplicaSets → ermöglicht rollende Updates & Rollbacks.

Beim Update erzeugt das Deployment ein neues ReplicaSet (neue Version) und fährt das alte herunter — Pod für Pod. Genau das macht später Rollback möglich.

2. Wie sich die Schichten „finden“: Labels & Selectors

Kubernetes verbindet die Schichten nicht über Namen, sondern über Labels (Tags am Pod) und Selectors (Suchfilter). Das Deployment sagt sinngemäß: „alle Pods mit app=web gehören zu mir“.

spec:
  selector:
    matchLabels:
      app: web          # der Selector des Deployments
  template:
    metadata:
      labels:
        app: web        # dasselbe Label am Pod → sie gehören zusammen

3. Selbstheilung sehen (sicher)

Löschst du einen vom Deployment verwalteten Pod, ersetzt das ReplicaSet ihn binnen Sekunden. Das ist kein Schaden — der Soll-Zustand bleibt erhalten. Schau es dir an:

# Alle drei Schichten nebeneinander (Beispiel-Namespace)
kubectl get deploy,rs,pods -n ai-ops

# Woher kommt ein Pod? Suche im describe nach "Controlled By"
kubectl describe pod -n ai-ops <pod-name> | grep -i "Controlled By"
Read-only-Beobachtung

Controlled By: ReplicaSet/… beweist: dieser Pod ist Teil der Matrjoschka. Ein Pod ganz ohne „Controlled By“ wäre ein nackter Pod — der hätte kein Sicherheitsnetz.

4. Wann doch kein Deployment?

Brauchst du…Objekt
zustandslose App (Web, API)Deployment
einen Pod pro Node (Agent, Log-Collector)DaemonSet
stabile Identität + Storage (Datenbank)StatefulSet
einmalige Aufgabe / CronjobJob / CronJob

Für den Anfang gilt: im Zweifel Deployment.

Selbsttest

1. Du löschst einen Pod, der zu einem Deployment gehört. Was passiert?
2. Worüber gehören Pods und Deployment zusammen?
3. Welches Objekt nimmst du für eine normale zustandslose Web-App?
Frag deinen Lehrer: „Was ist der Unterschied zwischen Deployment und StatefulSet?“, „Wie sehe ich, welches ReplicaSet gerade aktiv ist?“ oder „Warum nicht einfach Pods direkt?“