Curriculum: Kubernetes
Dieses Curriculum strukturiert einen Kubernetes-Workshop vom Einstieg bis zu fortgeschrittenem Plattform- und Security-Betrieb. Es ist so aufgebaut, dass du daraus einzelne Trainingsmodule, mehrtägige Workshops, Lernpfade für Teams oder eine vollständige interne Enablement-Reihe ableiten kannst.
Das Dokument verbindet Theorie, Architekturverständnis, praktische Übungen, Review-Kriterien und betriebliche Reife.
1. Ziel des Curriculums
Das Curriculum soll dir helfen, Kubernetes nicht nur als Sammlung einzelner Befehle zu verstehen, sondern als Plattformmodell für den Betrieb containerisierter Anwendungen. Du lernst, wie Anwendungen deklariert, ausgerollt, überwacht, abgesichert, skaliert und im Fehlerfall analysiert werden.
Nach Abschluss der vollständigen Reihe kannst du:
- Kubernetes-Architektur und Verantwortlichkeiten erklären.
- Kubernetes-Ressourcen lesen, schreiben, validieren und betreiben.
- Anwendungen mit Deployments, Services, ConfigMaps, Secrets, Probes und Ressourcenangaben produktionsnah ausrollen.
- typische Fehlerbilder mit
kubectl, Logs, Events, Metriken und Ressourcenstatus analysieren. - Plattformthemen wie Netzwerk, Storage, Scheduling, Add-ons, Observability, GitOps und Backup einordnen.
- Security-Kontrollen wie RBAC, ServiceAccounts, Pod Security Standards, NetworkPolicies und Secret-Schutz anwenden.
- Architekturentscheidungen dokumentieren und Kubernetes-Lösungen reviewfähig machen.
1.1. Was dieses Curriculum leisten soll
Dieses Curriculum ist für Workshops, interne Schulungen, Bootcamps und strukturierte Selbstlernphasen gedacht. Es kombiniert konzeptionelle Erklärungen mit konkreten Übungen. Jede Lerneinheit soll einen Bezug zu realem Betrieb haben: Was passiert im Cluster? Wie prüfst du den Zustand? Welche Risiken entstehen? Wie kannst du Änderungen rückbauen?
1.2. Was dieses Curriculum bewusst nicht ersetzt
Das Curriculum ersetzt keine produktive Plattformdokumentation deines Unternehmens, keine Provider-spezifische Betriebsanleitung und keine vollständige Security-Richtlinie. Es liefert die fachliche Struktur, mit der du solche Dokumente erstellen, prüfen oder verbessern kannst.
2. Didaktisches Modell
Der Workshop folgt einem wiederkehrenden Lernzyklus:
Verstehen -> Anwenden -> Beobachten -> Debuggen -> Absichern -> Dokumentieren
Jedes Thema wird nach Möglichkeit in fünf Schritten behandelt:
| Schritt | Ziel | Typische Aktivität |
|---|---|---|
| 1. Konzept | Du verstehst Zweck und Grenzen eines Kubernetes-Konzepts. | Architekturdiagramm, Ressourcenmodell, Objektbeziehung |
| 2. Manifest | Du beschreibst den gewünschten Zustand deklarativ. | YAML lesen, schreiben, validieren |
| 3. Ausführung | Du wendest die Änderung im Cluster an. | kubectl apply, Rollout, Service-Aufruf |
| 4. Beobachtung | Du prüfst, ob der tatsächliche Zustand zum gewünschten Zustand passt. | kubectl get, describe, Logs, Events, Metriken |
| 5. Fehlerpfad | Du erzeugst oder untersuchst einen Fehler und leitest eine Korrektur ab. | Debugging, Rollback, Policy-Anpassung |
2.1. Lernprinzipien
- Deklarativ denken: Du beschreibst Zielzustände, statt manuell Prozesse im Cluster zusammenzuklicken.
- Status lesen: Du lernst,
spec,status, Conditions und Events als Diagnosequellen zu nutzen. - Fehler bewusst erzeugen: Du lernst schneller, wenn du typische Fehlerbilder kontrolliert reproduzierst.
- Betrieb einbeziehen: Jede Übung enthält Validierung, Rückbau und eine kurze Betriebsbewertung.
- Security nicht anhängen: Sicherheitsaspekte werden von Anfang an mitgeführt, nicht erst am Ende ergänzt.
- Reviewfähigkeit herstellen: Jede Lösung soll nachvollziehbar, versionierbar und prüfbar sein.
2.2. Tiefe pro Thema
Nicht jedes Thema braucht dieselbe Tiefe. Für Einsteiger reichen mentale Modelle und sichere Standardpfade. Für Plattformteams brauchst du zusätzlich Upgrade-, Failure-, Security- und Betriebsbetrachtungen.
| Tiefe | Beschreibung | Geeignet für |
|---|---|---|
| Überblick | Du kannst Zweck und Begriffe erklären. | Orientierung, Management, neue Teammitglieder |
| Anwendung | Du kannst Ressourcen erstellen und ändern. | Entwickler, DevOps, Admins |
| Betrieb | Du kannst Fehler analysieren, Rollouts steuern und Risiken bewerten. | SRE, Plattformteams |
| Design | Du kannst Architekturentscheidungen treffen und begründen. | Tech Leads, Architekten |
| Security | Du kannst Angriffsflächen reduzieren und Incidents strukturieren. | Security Engineers, DevSecOps |
3. Zielgruppen und Rollen
Das Curriculum ist modular. Du kannst es für unterschiedliche Rollen zuschneiden.
| Zielgruppe | Typischer Bedarf | Relevante Level |
|---|---|---|
| Entwickler | Anwendungen deployen, Logs lesen, Services nutzen, Konfiguration verstehen. | Fundamentals, Intermediate |
| Junior DevOps | Manifeste pflegen, Rollouts begleiten, Fehlerbilder analysieren. | Fundamentals, Intermediate |
| System Engineers | Clusterbetrieb verstehen, Nodes, Netzwerk, Storage und Add-ons prüfen. | Intermediate, Professional |
| Platform Engineers | Plattformstandards, GitOps, Multi-Tenancy, Add-ons und Upgrades gestalten. | Professional, Advanced |
| SREs | Betriebsreife, SLOs, Observability, Incident Response und Fehleranalyse vertiefen. | Intermediate, Professional, Advanced |
| Security Engineers | RBAC, Pod Security, Netzwerkisolierung, Runtime Security und Forensik anwenden. | Advanced und Security |
| Tech Leads | Architekturentscheidungen, Plattformgrenzen und Teamstandards ableiten. | Professional, Advanced |
| Administratoren | Clusterzugriff, Nodes, kubeadm, Backups, Zertifikate und Upgrades verstehen. | Fundamentals, Professional |
3.1. Erwartete Ergebnisse je Rolle
Entwickler
Du sollst nach dem Training eine Anwendung sauber in Kubernetes ausrollen können. Dazu gehören Deployment, Service, Konfiguration, Probes, Ressourcenangaben, Logs und ein einfacher Rollback.
DevOps und System Engineers
Du sollst Workloads produktionsnah betreiben können. Dazu gehören Debugging, Rollout-Strategien, Storage, Ingress, DNS, Ressourcenmanagement, Helm oder Kustomize sowie Basissicherheit.
Platform Engineers und SREs
Du sollst Plattformentscheidungen bewerten können. Dazu gehören Clusterarchitektur, Add-ons, GitOps, Observability, Multi-Tenancy, Upgrade-Strategien, Backup und Disaster Recovery.
Security Engineers
Du sollst Kubernetes-spezifische Angriffsflächen erkennen und technische Kontrollen umsetzen können. Dazu gehören RBAC, ServiceAccounts, Admission, Pod Security Standards, NetworkPolicies, Secret-Schutz, Image Security und Runtime Detection.
4. Voraussetzungen
4.1. Fachliche Voraussetzungen
Für den Einstieg brauchst du:
- Grundverständnis von Containern und Images.
- Grundkenntnisse der Linux-Shell.
- Grundverständnis von HTTP, DNS, Ports und TCP/IP.
- Basiswissen zu YAML.
- Fähigkeit, Fehlermeldungen systematisch zu lesen.
Für Professional und Advanced solltest du zusätzlich mitbringen:
- Erfahrung mit CI/CD oder GitOps.
- Erfahrung mit Linux-Systemdiensten und Logs.
- Verständnis von TLS, Zertifikaten, Authentifizierung und Autorisierung.
- Grundverständnis von Cloud-Netzwerk, Load Balancing und Storage.
- Erfahrung mit Monitoring- und Logging-Systemen.
4.2. Technische Voraussetzungen
Für die Labs brauchst du mindestens:
kubectl- Zugriff auf einen Kubernetes-Cluster
- eine Shell-Umgebung
- Git
- einen Editor
- optional: Helm, Kustomize,
jq,yq,stern,k9s,crictl
Für lokale Workshops eignen sich je nach Zielsetzung:
- kind
- minikube
- k3d
- k3s
- kubeadm-basierte VMs
- verwaltete Kubernetes-Cluster bei Cloud-Providern
4.3. Vorbereitungscheck
Vor dem Workshop solltest du prüfen:
kubectl version --client
kubectl config current-context
kubectl cluster-info
kubectl get nodes -o wide
kubectl auth can-i get pods -A
Du brauchst für die meisten Übungen einen Namespace, in dem du Ressourcen erstellen, ändern und löschen darfst.
5. Lernpfade
5.1. Lernpfad für Entwickler
Ziel: Du kannst deine Anwendung in Kubernetes deployen, konfigurieren, prüfen und bei Problemen analysieren.
Empfohlene Reihenfolge:
- Kubernetes-Grundmodell
- Pods, Deployments und ReplicaSets
- Services und DNS
- ConfigMaps und Secrets
- Probes und Rollouts
- Logs, Events und Debugging
- Ressourcenangaben und einfache Skalierung
- Abschlussübung: Anwendung produktionsnah ausrollen
5.2. Lernpfad für DevOps und System Engineers
Ziel: Du kannst Workloads betreiben, Fehler analysieren und robuste Standards für Teams etablieren.
Empfohlene Reihenfolge:
- Fundamentals vollständig
- Workload-Controller im Detail
- Ressourcenmanagement und Scheduling
- Ingress, Gateway API und NetworkPolicies
- Storage und Stateful Workloads
- Helm, Kustomize und CI/CD-Validierung
- Observability und Incident-Triage
- Abschlussübung: Fehlerhafte Anwendung stabilisieren
5.3. Lernpfad für Platform Engineers
Ziel: Du kannst Kubernetes-Plattformen planen, betreiben und weiterentwickeln.
Empfohlene Reihenfolge:
- Clusterarchitektur und Control Plane
- kubeadm, Managed Kubernetes und Distributionen
- CNI, CSI, Ingress und Load Balancing
- Observability-Stack
- GitOps und Plattform-Add-ons
- Multi-Tenancy, Quotas, Policies und Kostensteuerung
- Backup, Restore und Disaster Recovery
- Abschlussübung: Plattform-Blueprint erstellen
5.4. Lernpfad für Security Engineers
Ziel: Du kannst Kubernetes-Workloads und Plattformen härten, Angriffe erkennen und Incidents strukturiert bearbeiten.
Empfohlene Reihenfolge:
- Kubernetes-Bedrohungsmodell
- API-Zugriff, Authentifizierung und Autorisierung
- RBAC Least Privilege
- ServiceAccounts und Token-Verhalten
- Pod Security Standards und Admission Control
- SecurityContext, Capabilities, seccomp, AppArmor und SELinux
- NetworkPolicies und Service-Mesh-/CNI-Policies
- Secret-Schutz, Image Security und Runtime Detection
- Abschlussübung: Security Review und Incident-Simulation
6. Kompetenzstufen
6.1. Stufe A: Orientierung
Du kannst beschreiben, was Kubernetes macht, wofür ein Cluster eingesetzt wird und welche Kernkomponenten beteiligt sind.
Erwartete Kompetenz:
- Du erklärst Control Plane und Worker Nodes.
- Du unterscheidest Pod, Deployment und Service.
- Du verstehst Desired State und Reconciliation.
- Du kannst einen Namespace und einfache Ressourcen anzeigen.
6.2. Stufe B: Anwendung
Du kannst einfache Workloads erstellen, ausrollen und prüfen.
Erwartete Kompetenz:
- Du schreibst einfache Manifeste.
- Du nutzt
kubectl apply,get,describe,logsunddeletesicher. - Du stellst eine Anwendung über einen Service bereit.
- Du prüfst Events, Logs und Ressourcenzustand.
6.3. Stufe C: Produktionsnähe
Du kannst Workloads robust konfigurieren.
Erwartete Kompetenz:
- Du definierst Requests, Limits und Probes.
- Du nutzt ConfigMaps und Secrets bewusst.
- Du steuerst Rollouts und Rollbacks.
- Du verstehst HPA, PDB und einfache Ingress-Szenarien.
- Du erkennst typische Fehlerbilder.
6.4. Stufe D: Plattformbetrieb
Du kannst Cluster- und Plattformentscheidungen bewerten.
Erwartete Kompetenz:
- Du verstehst Control Plane HA, etcd, CNI, CSI und Add-ons.
- Du bewertest Distributionen und Managed Kubernetes.
- Du planst Observability, GitOps, Backup, Restore und Upgrade-Prozesse.
- Du definierst Multi-Tenancy-Standards.
6.5. Stufe E: Security und Resilienz
Du kannst Kubernetes gezielt härten und Incident-Pfade bearbeiten.
Erwartete Kompetenz:
- Du setzt RBAC Least Privilege um.
- Du prüfst ServiceAccounts und Tokens.
- Du nutzt Pod Security Standards und SecurityContexts.
- Du bewertest NetworkPolicies, Image Security, Secret-Schutz und Runtime Detection.
- Du führst eine strukturierte Incident-Analyse durch.
7. Gesamtstruktur des Workshops
Das Curriculum ist in vier Hauptlevel gegliedert:
| Level | Fokus | Ergebnis |
|---|---|---|
| Fundamentals | Grundbegriffe, Architektur, einfache Deployments | Du kannst einfache Anwendungen deployen und prüfen. |
| Intermediate | Produktionsnahe Workloads, Konfiguration, Debugging | Du kannst robuste Workloads erstellen und Fehler analysieren. |
| Professional | Plattformbetrieb, Add-ons, Architektur, GitOps | Du kannst Kubernetes-Plattformen planen und betreiben. |
| Advanced und Security | Härtung, Policy, Runtime Security, Incident Response | Du kannst Risiken reduzieren und Security-Incidents bearbeiten. |
7.1. Empfohlene Modulreihenfolge
flowchart TD A[Fundamentals] --> B[Intermediate] B --> C[Professional] B --> D[Advanced und Security] C --> E[Plattformprojekt] D --> F[Security-Projekt] E --> G[Abschlussbewertung] F --> G
7.2. Mindestpfad für einen kompakten Workshop
Wenn wenig Zeit verfügbar ist, sollte der Workshop mindestens diese Themen enthalten:
- Clusterarchitektur und Ressourcenmodell
- Namespace, Pod, Deployment, ReplicaSet und Service
- ConfigMap, Secret, Probes und Ressourcenangaben
- Logs, Events,
describeund Rollback - RBAC-Grundlagen und Pod Security-Grundlagen
- Abschlussübung mit Deployment, Service und Fehleranalyse
8. Level 1: Fundamentals
8.1. Ziel
Du verstehst die Grundidee von Kubernetes und kannst einfache Anwendungen deployen, verfügbar machen und prüfen.
8.2. Zielgruppe
- Einsteiger
- Entwickler
- Junior DevOps
- Administratoren mit wenig Kubernetes-Erfahrung
- Teams, die Kubernetes als Zielplattform nutzen werden
8.3. Lernziele
Nach diesem Level kannst du:
- Kubernetes als Orchestrierungsplattform erklären.
- Control Plane und Worker Nodes unterscheiden.
- die Rolle von API Server, etcd, Scheduler, Controller Manager, kubelet und kube-proxy beschreiben.
- Desired State, Actual State und Reconciliation erklären.
- Namespaces, Pods, Deployments, ReplicaSets und Services einordnen.
- Labels und Selectors anwenden.
- mit
kubectlRessourcen anzeigen, erstellen und löschen. - Logs und Events für einfache Fehleranalyse nutzen.
8.4. Modul F1: Einstieg und mentales Modell
| Aspekt | Inhalt |
|---|---|
| Ziel | Du verstehst, warum Kubernetes existiert und welches Problem es löst. |
| Kernfragen | Was bedeutet Orchestrierung? Was ist ein gewünschter Zustand? Was macht ein Controller? |
| Praxis | Clusterinformationen anzeigen, Kontext prüfen, Namespace erstellen. |
| Ergebnis | Du kannst erklären, wie eine Änderung über die Kubernetes API in den Cluster gelangt. |
Inhalte:
- Container-Orchestrierung
- gewünschter Zustand und tatsächlicher Zustand
- deklarative Konfiguration
- Kubernetes API als zentrale Schnittstelle
- Controller als kontinuierliche Regelkreise
- Abgrenzung zu Docker, CI/CD, Monitoring und Cloud-Providern
Übung:
kubectl version --client
kubectl cluster-info
kubectl config current-context
kubectl get nodes -o wide
kubectl create namespace workshop
kubectl get namespace workshop
Reflexionsfragen:
- Warum ist ein Kubernetes-Manifest kein Skript?
- Was passiert, wenn der gewünschte Zustand nicht zum tatsächlichen Zustand passt?
- Warum ist die API der zentrale Integrationspunkt?
8.5. Modul F2: Clusterarchitektur
| Aspekt | Inhalt |
|---|---|
| Ziel | Du kennst die Hauptkomponenten eines Clusters. |
| Kernfragen | Was läuft in der Control Plane? Was läuft auf Worker Nodes? Wo liegt der Clusterzustand? |
| Praxis | Nodes, System-Pods und Namespaces untersuchen. |
| Ergebnis | Du kannst Komponenten und Zuständigkeiten sauber trennen. |
Inhalte:
- Control Plane
- Worker Nodes
- API Server
- etcd
- Scheduler
- Controller Manager
- Cloud Controller Manager
- kubelet
- Container Runtime
- kube-proxy oder eBPF-Dataplane
- CNI-Plugin
- CoreDNS
Übung:
kubectl get nodes -o wide
kubectl get namespaces
kubectl get pods -n kube-system -o wide
kubectl describe node <node-name>
Typische Stolperstellen:
- Du verwechselst Control Plane-Komponenten mit Workload-Komponenten.
- Du erwartest, dass ein Pod direkt von
kubectlauf einem Node gestartet wird. - Du übersiehst, dass Controller den Zustand dauerhaft angleichen.
8.6. Modul F3: Ressourcenmodell und YAML
| Aspekt | Inhalt |
|---|---|
| Ziel | Du kannst Kubernetes-Objekte lesen und einfache Manifeste schreiben. |
| Kernfragen | Was bedeuten apiVersion, kind, metadata, spec und status? |
| Praxis | Manifest anwenden, Ressource anzeigen, Status prüfen. |
| Ergebnis | Du erkennst die Struktur aller Kubernetes-Objekte. |
Inhalte:
- API-Gruppen und Kinds
- Objektmetadaten
- Namespaces
- Labels und Annotations
specals gewünschter Zustandstatusals Rückmeldung des Systems- Conditions und Events
- Ressourcenidentität über Name, Namespace und UID
Beispiel:
apiVersion: v1
kind: Namespace
metadata:
name: workshop
labels:
purpose: training
Übung:
kubectl apply -f namespace.yaml
kubectl get namespace workshop -o yaml
kubectl explain pod.spec.containers
8.7. Modul F4: Pods
| Aspekt | Inhalt |
|---|---|
| Ziel | Du verstehst Pods als kleinste deploybare Einheit. |
| Kernfragen | Warum deployt man nicht direkt Container? Was teilen Container in einem Pod? |
| Praxis | Pod starten, Logs lesen, Pod beschreiben. |
| Ergebnis | Du kannst Pod-Zustände und einfache Fehler erkennen. |
Inhalte:
- Pod als Gruppe eines oder mehrerer Container
- gemeinsame Netzwerkidentität
- Container-Ports
- Volumes im Pod
- Restart Policy
- Pod-Phasen
- Container-States
- Events als Fehlerquelle
Übung:
kubectl run nginx-demo -n workshop --image=nginx:1.27 --restart=Never
kubectl get pod nginx-demo -n workshop -o wide
kubectl describe pod nginx-demo -n workshop
kubectl logs nginx-demo -n workshop
kubectl delete pod nginx-demo -n workshop
Wichtige Erkenntnis:
Ein Pod ist in der Regel kein langfristig manuell verwaltetes Objekt. Für normale Anwendungen nutzt du Controller wie Deployments.
8.8. Modul F5: Deployments und ReplicaSets
| Aspekt | Inhalt |
|---|---|
| Ziel | Du kannst zustandslose Anwendungen deklarativ ausrollen. |
| Kernfragen | Was ist der Unterschied zwischen Pod, ReplicaSet und Deployment? |
| Praxis | Deployment erstellen, skalieren, Rollout prüfen. |
| Ergebnis | Du kannst eine Anwendung reproduzierbar ausrollen. |
Inhalte:
- Deployment als Controller für zustandslose Anwendungen
- ReplicaSet als Replikationsmechanismus
- Pod Template
- Selektoren
- Rolling Update
- Revisionen
- Rollback
Beispiel:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
namespace: workshop
spec:
replicas: 2
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.27
ports:
- containerPort: 80
Übung:
kubectl apply -f deployment.yaml
kubectl get deployment,replicaset,pod -n workshop
kubectl rollout status deployment/web -n workshop
kubectl scale deployment/web -n workshop --replicas=3
kubectl rollout history deployment/web -n workshop
8.9. Modul F6: Services und Service Discovery
| Aspekt | Inhalt |
|---|---|
| Ziel | Du kannst Pods über stabile interne Adressen erreichbar machen. |
| Kernfragen | Warum braucht man Services, wenn Pods eigene IPs haben? |
| Praxis | Service erstellen, Endpoints prüfen, DNS testen. |
| Ergebnis | Du verstehst Service Discovery im Cluster. |
Inhalte:
- Pod-IP als flüchtige Adresse
- Service als stabile Abstraktion
- Label Selector
- ClusterIP
- NodePort
- LoadBalancer
- Endpoints und EndpointSlices
- CoreDNS
- Service-DNS-Namen
Beispiel:
apiVersion: v1
kind: Service
metadata:
name: web
namespace: workshop
spec:
selector:
app: web
ports:
- name: http
port: 80
targetPort: 80
type: ClusterIP
Übung:
kubectl apply -f service.yaml
kubectl get service,endpoints,endpointslice -n workshop
kubectl run dns-test -n workshop --rm -it --image=busybox:1.36 --restart=Never -- sh
wget -qO- http://web.workshop.svc.cluster.local
8.10. Modul F7: kubectl-Grundlagen
| Aspekt | Inhalt |
|---|---|
| Ziel | Du nutzt kubectl sicher für Standardoperationen. |
| Kernfragen | Wie findest du Ressourcen? Wie prüfst du den Zustand? Wie validierst du Änderungen? |
| Praxis | Ressourcen anzeigen, beschreiben, anwenden und löschen. |
| Ergebnis | Du kannst dich im Cluster orientieren. |
Inhalte:
- Kontext und kubeconfig
- Namespaces
getdescribelogsapplydeletediffexplain- Ausgabeformate
- Field Selector und Label Selector
Übung:
kubectl get all -n workshop
kubectl get pods -n workshop -l app=web
kubectl describe deployment web -n workshop
kubectl logs deployment/web -n workshop
kubectl diff -f deployment.yaml
kubectl delete -f deployment.yaml
8.11. Modul F8: Fundamentals-Abschlussübung
Ziel der Übung:
Du rollst eine einfache Webanwendung aus, veröffentlichst sie intern im Cluster, prüfst Logs und Events und dokumentierst den Rückbau.
Aufgaben:
- Erstelle einen Namespace.
- Erstelle ein Deployment mit zwei Replikaten.
- Erstelle einen ClusterIP-Service.
- Prüfe Pods, ReplicaSets, Deployment und Service.
- Teste DNS aus einem Debug-Pod.
- Ändere das Image und beobachte den Rollout.
- Führe einen Rollback aus.
- Lösche alle Ressourcen sauber.
Abnahmekriterien:
- Der Namespace ist eindeutig benannt.
- Das Deployment hat Labels und passende Selektoren.
- Der Service zeigt auf die erwarteten Pods.
- Der Rollout ist nachvollziehbar.
- Der Rückbau ist dokumentiert.
9. Level 2: Intermediate
9.1. Ziel
Du kannst produktionsnahe Workloads konfigurieren, debuggen und betreiben. Der Fokus liegt auf Robustheit, Konfiguration, Ressourcen, Rollouts, Netzwerk, Storage und operativer Fehleranalyse.
9.2. Zielgruppe
- DevOps Engineers
- Entwickler mit Betriebsverantwortung
- System Engineers
- Kubernetes-Anwender mit Grundlagenwissen
- Teams, die Anwendungen produktionsnah in Kubernetes betreiben wollen
9.3. Lernziele
Nach diesem Level kannst du:
- Deployments, StatefulSets, DaemonSets, Jobs und CronJobs unterscheiden.
- ConfigMaps und Secrets korrekt einsetzen.
- Liveness, Readiness und Startup Probes konfigurieren.
- Requests, Limits und QoS-Klassen erklären.
- HPA und PDB einordnen.
- Ingress, Gateway API und DNS-Grundlagen anwenden.
- PV, PVC und StorageClass nutzen.
- Scheduling-Regeln wie Node Affinity, Pod Affinity, Taints und Tolerations verstehen.
- Helm und Kustomize für Paketierung und Variantenmanagement einsetzen.
- typische Fehlerbilder strukturiert analysieren.
9.4. Modul I1: Workload-Controller im Vergleich
| Workload | Zweck | Typischer Einsatz |
|---|---|---|
| Deployment | zustandslose, skalierbare Anwendungen | Webservices, APIs, Worker ohne feste Identität |
| StatefulSet | zustandsbehaftete Anwendungen mit stabiler Identität | Datenbanken, Broker, replizierte Systeme |
| DaemonSet | ein Pod pro Node oder Node-Gruppe | Log-Agenten, CNI-Komponenten, Node Exporter |
| Job | einmalige Aufgaben | Migrationen, Batch-Verarbeitung |
| CronJob | geplante Aufgaben | regelmäßige Wartung, Reports, Backups |
Übung:
- Erstelle ein Deployment für eine Webanwendung.
- Erstelle einen Job für eine einmalige Aufgabe.
- Erstelle einen CronJob mit kurzer Testfrequenz.
- Prüfe erzeugte Pods und Logs.
- Lösche die Testressourcen.
Abnahmekriterien:
- Du kannst erklären, warum ein Deployment nicht für jeden Anwendungsfall passt.
- Du erkennst, wann stabile Identität oder geplanter Ablauf wichtiger ist als horizontale Skalierung.
9.5. Modul I2: Konfiguration mit ConfigMaps und Secrets
| Aspekt | ConfigMap | Secret |
|---|---|---|
| Zweck | nicht vertrauliche Konfiguration | vertrauliche Werte |
| Beispiele | Feature Flags, URLs, Log-Level | Passwörter, Tokens, Zertifikate |
| Nutzung | Environment Variables oder Volumes | Environment Variables oder Volumes |
| Risiko | falsche Konfiguration | Datenabfluss, zu breite Berechtigungen |
Inhalte:
- Konfiguration von Images trennen
- ConfigMaps als Dateien oder Environment Variables
- Secrets als Kubernetes-Ressourcen
- Base64 ist keine Verschlüsselung
- Rollout-Verhalten bei Konfigurationsänderungen
- Secret-Zugriff über RBAC begrenzen
- externe Secret-Systeme einordnen
Übung:
kubectl create configmap app-config \
-n workshop \
--from-literal=LOG_LEVEL=info \
--dry-run=client -o yaml > configmap.yaml
kubectl create secret generic app-secret \
-n workshop \
--from-literal=API_TOKEN=dummy \
--dry-run=client -o yaml > secret.yaml
Aufgaben:
- Binde eine ConfigMap als Environment Variable ein.
- Binde ein Secret als Volume ein.
- Prüfe, ob die Anwendung die Werte sieht.
- Ändere die ConfigMap.
- Beobachte, ob ein Rollout automatisch passiert.
- Dokumentiere, wie du einen bewussten Rollout auslöst.
9.6. Modul I3: Probes und Anwendungslebenszyklus
| Probe | Zweck | Wirkung |
|---|---|---|
| Startup Probe | schützt langsam startende Anwendungen | Liveness und Readiness warten, bis Start abgeschlossen ist |
| Readiness Probe | signalisiert, ob ein Pod Traffic erhalten soll | Service-Endpunkte werden angepasst |
| Liveness Probe | erkennt nicht mehr funktionierende Container | Container kann neu gestartet werden |
Inhalte:
- Unterschied zwischen Prozess läuft und Anwendung ist bereit
- HTTP-, TCP- und Exec-Probes
- Initial Delay, Timeout, Period und Failure Threshold
- Graceful Shutdown
terminationGracePeriodSeconds- PreStop Hook
- Auswirkungen auf Rollouts
Übung:
- Ergänze eine Readiness Probe.
- Ergänze eine Liveness Probe.
- Erzeuge eine fehlerhafte Probe.
- Beobachte Events und Container-Restarts.
- Korrigiere die Probe.
Fehlerbild:
Eine zu aggressive Liveness Probe kann eine noch startende Anwendung dauerhaft neu starten. Nutze Startup Probes oder realistische Schwellwerte.
9.7. Modul I4: Ressourcenmanagement
Inhalte:
- CPU Requests
- Memory Requests
- CPU Limits
- Memory Limits
- QoS-Klassen: Guaranteed, Burstable, BestEffort
- OOMKilled
- NodePressure
- LimitRange
- ResourceQuota
- Metrics Server
- Horizontal Pod Autoscaler
Beispiel:
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
Übung:
- Ergänze Requests und Limits in einem Deployment.
- Prüfe die resultierende QoS-Klasse.
- Setze eine ResourceQuota im Namespace.
- Erzeuge bewusst ein Manifest, das gegen die Quota verstößt.
- Analysiere die Fehlermeldung.
Abnahmekriterien:
- Du kannst erklären, warum fehlende Requests Scheduling und Kapazitätsplanung verschlechtern.
- Du kannst OOMKilled von CrashLoopBackOff unterscheiden.
- Du verstehst, dass Limits nicht automatisch gute Performance bedeuten.
9.8. Modul I5: Rollouts, Rollbacks und Verfügbarkeit
Inhalte:
- Deployment Strategy
- RollingUpdate
maxUnavailablemaxSurge- Revision History
- Rollout Status
- Rollback
- PodDisruptionBudget
- Readiness als Rollout-Signal
Übung:
kubectl rollout status deployment/web -n workshop
kubectl rollout history deployment/web -n workshop
kubectl set image deployment/web nginx=nginx:1.28 -n workshop
kubectl rollout undo deployment/web -n workshop
Aufgaben:
- Ändere ein Image auf eine gültige Version.
- Beobachte den Rolling Update.
- Ändere ein Image auf eine ungültige Version.
- Analysiere den hängenden Rollout.
- Führe einen Rollback aus.
- Ergänze ein PodDisruptionBudget.
9.9. Modul I6: Netzwerk, DNS, Ingress und Gateway API
Inhalte:
- Pod-Netzwerk
- Service Discovery
- ClusterIP, NodePort, LoadBalancer
- DNS-Namen für Services
- Endpoints und EndpointSlices
- Ingress Controller
- Ingress-Ressourcen
- Gateway API als erweiterbares Routing-Modell
- TLS-Terminierung
- NetworkPolicies
Übung:
- Prüfe Service und EndpointSlices.
- Teste DNS aus einem Debug-Pod.
- Erstelle eine einfache Ingress-Regel oder HTTPRoute, falls die Umgebung es unterstützt.
- Ergänze eine deny-by-default NetworkPolicy.
- Erlaube gezielt Traffic von einem bestimmten Pod-Label.
Abnahmekriterien:
- Du kannst erklären, warum ein Service ohne Endpoints nicht funktionieren kann.
- Du kannst DNS-Probleme von Service-Selector-Problemen unterscheiden.
- Du weißt, dass NetworkPolicies nur wirken, wenn das Netzwerk-Plugin sie durchsetzt.
9.10. Modul I7: Storage
Inhalte:
- temporärer Pod-Speicher
- Volumes
- PersistentVolume
- PersistentVolumeClaim
- StorageClass
- dynamische Provisionierung
- Access Modes
- Reclaim Policy
- CSI
- Volume Expansion
- Backup und Restore
Übung:
- Erstelle einen PVC.
- Binde ihn in einen Pod oder ein Deployment ein.
- Schreibe Testdaten.
- Lösche den Pod.
- Prüfe, ob die Daten erhalten bleiben.
- Prüfe PV, PVC, StorageClass und Events.
Abnahmekriterien:
- Du unterscheidest Pod-Lebensdauer von Daten-Lebensdauer.
- Du kannst PVC Pending analysieren.
- Du kannst erklären, warum Stateful Workloads Backup- und Restore-Design brauchen.
9.11. Modul I8: Scheduling
Inhalte:
- Node Selector
- Node Affinity
- Pod Affinity
- Pod Anti-Affinity
- Taints
- Tolerations
- Topology Spread Constraints
- PriorityClass
- Preemption
- Resource Requests als Scheduling-Grundlage
Übung:
- Weise einem Node ein Label zu, falls erlaubt.
- Plane einen Pod per Node Selector auf passende Nodes.
- Verwende eine Toleration für einen tainted Node.
- Erzeuge bewusst einen Pending Pod.
- Analysiere Scheduler-Events.
Typische Fehlannahme:
Scheduling-Regeln sind keine Sicherheitsgrenzen. Sie steuern Platzierung, ersetzen aber nicht RBAC, Admission, Pod Security oder Netzwerkisolierung.
9.12. Modul I9: Helm und Kustomize
Inhalte:
- Zweck von Paketierung und Templating
- Helm Chart-Struktur
- Values-Dateien
- Helm Template und Dry Run
- Helm Release Lifecycle
- Kustomize Bases und Overlays
- Patches
- Generatoren
- Validierung in CI/CD
Übung:
helm lint ./chart
helm template demo ./chart -f values.yaml
helm upgrade --install demo ./chart -n workshop --dry-run
kubectl kustomize overlays/dev
kubectl apply -k overlays/dev --dry-run=server
Abnahmekriterien:
- Du kannst erklären, wann Helm sinnvoll ist.
- Du kannst erklären, wann Kustomize einfacher und transparenter ist.
- Du validierst generierte Manifeste vor dem Apply.
9.13. Modul I10: Debugging und Triage
Inhalte:
kubectl getkubectl describe- Logs aktueller und vorheriger Container
- Events
- Debug-Pods
- Ephemeral Containers
- Port Forwarding
- Service- und DNS-Tests
- Ressourcenstatus
- CrashLoopBackOff
- ImagePullBackOff
- Pending
- OOMKilled
- Forbidden
Übung:
Du bekommst eine bewusst fehlerhafte Anwendung. Du sollst Ursache, Korrektur und Validierung dokumentieren.
Mögliche Fehler:
- falsches Image
- fehlender Secret-Key
- falscher Service Selector
- zu niedrige Memory Limits
- fehlerhafte Readiness Probe
- fehlende RBAC-Berechtigung
- PVC ohne passende StorageClass
Abnahmekriterien:
- Du dokumentierst Symptome und Ursache getrennt.
- Du belegst die Ursache mit Logs, Events oder Statusfeldern.
- Du führst eine minimale Korrektur durch.
- Du prüfst den Erfolg nach der Korrektur.
10. Level 3: Professional
10.1. Ziel
Du kannst Kubernetes-Plattformen planen, betreiben und bewerten. Der Fokus liegt auf Clusterarchitektur, Distributionen, Lifecycle, Netzwerk, Storage, Observability, GitOps, Multi-Tenancy, Kosten und Disaster Recovery.
10.2. Zielgruppe
- Platform Engineers
- Cloud Engineers
- SREs
- Systemarchitekten
- Tech Leads
- erfahrene DevOps Engineers
10.3. Lernziele
Nach diesem Level kannst du:
- Clusterarchitekturen bewerten.
- Distributionen und Betriebsmodelle einordnen.
- Control Plane HA und etcd-Risiken erklären.
- Kubernetes-Versionen und Version-Skew berücksichtigen.
- CNI, CSI und Load Balancing bewerten.
- Observability-Stacks für Kubernetes planen.
- GitOps mit Argo CD oder Flux einordnen.
- Plattform-Add-ons kontrolliert betreiben.
- Multi-Tenancy über Namespaces, RBAC, Quotas und NetworkPolicies gestalten.
- Backup, Restore und Disaster Recovery planen.
10.4. Modul P1: Clusterarchitektur und Betriebsmodell
Inhalte:
- Single-Cluster vs Multi-Cluster
- Multi-Zone und Multi-Region
- Control Plane HA
- Worker Node Pools
- getrennte System- und Workload-Nodepools
- Cluster pro Umgebung
- Cluster pro Mandant
- Shared Cluster mit Namespaces
- Cluster API und Lifecycle-Automatisierung
- Managed Kubernetes vs selbst betriebene Cluster
Entscheidungsfragen:
- Wer betreibt die Control Plane?
- Wer patcht Nodes?
- Wer verantwortet CNI, CSI und Ingress?
- Wie wird der Cluster-Zustand gesichert?
- Wie werden Plattformänderungen getestet?
- Welche Isolation braucht dein Mandantenmodell?
Übung:
Erstelle für ein Beispielszenario eine Cluster-Zielarchitektur. Dokumentiere:
- Betriebsmodell
- Umgebungen
- Node Pools
- Netzwerkannahmen
- Storage-Anforderungen
- Upgrade-Pfad
- Backup- und Restore-Konzept
- Risiken und offene Entscheidungen
10.5. Modul P2: Distributionen und Installationswege
Inhalte:
- kubeadm
- Managed Kubernetes
- RKE2
- k3s
- k0s
- OpenShift
- Talos
- kind und minikube als Lern- und Testumgebungen
- Produktivitäts- und Betriebsunterschiede
- Supportmodell
- Upgradepfad
- Add-on-Verantwortung
Bewertungskriterien:
| Kriterium | Leitfrage |
|---|---|
| Betriebsverantwortung | Wer patcht und überwacht die Plattform? |
| Erweiterbarkeit | Wie frei kannst du Add-ons und Policies installieren? |
| Security | Welche Härtung ist Standard, welche musst du selbst ergänzen? |
| Netzwerk | Welche CNI- und Load-Balancing-Optionen gibt es? |
| Storage | Welche CSI-Treiber sind verfügbar und unterstützt? |
| Lifecycle | Wie funktionieren Upgrades, Rollbacks und Supportfenster? |
| Compliance | Welche Anforderungen an Audit, Verschlüsselung und Zugriff bestehen? |
10.6. Modul P3: kubeadm und Cluster-Lifecycle
Inhalte:
- Zweck von kubeadm
kubeadm initkubeadm join- Zertifikate
- Bootstrap Tokens
- kubeconfig-Dateien
- Control Plane-Erweiterung
- Worker Join
- Upgrade-Planung
- Version Skew
- Reset und Wiederherstellung
- Grenzen von kubeadm
Übung:
In einer geeigneten Lab-Umgebung:
- Prüfe Voraussetzungen für Nodes.
- Initialisiere eine Control Plane.
- Installiere ein CNI-Plugin.
- Füge einen Worker Node hinzu.
- Prüfe Clusterzustand.
- Simuliere ein Zertifikats- oder Join-Problem.
- Dokumentiere die Korrektur.
Hinweis:
kubeadm ist ein Bootstrap-Werkzeug. Machine Provisioning, vollautomatisches Add-on-Management und vollständiger Plattformbetrieb müssen über zusätzliche Werkzeuge oder Prozesse geregelt werden.
10.7. Modul P4: etcd und Control Plane-Betrieb
Inhalte:
- etcd als konsistenter Key-Value-Store
- Snapshot und Restore
- Quorum
- Latenz und Storage-Performance
- Zertifikate
- Defragmentierung
- Monitoring
- Backup-Frequenz
- Restore-Test
- Control Plane-Komponenten als statische Pods
Übung:
- Prüfe Control Plane-Pods.
- Erstelle einen etcd-Snapshot in einer Lab-Umgebung.
- Dokumentiere Restore-Schritte.
- Definiere ein Restore-Testintervall.
- Formuliere Risiken bei fehlerhaftem etcd-Backup.
Abnahmekriterien:
- Du kannst erklären, warum ein Backup ohne Restore-Test unzureichend ist.
- Du kennst die Auswirkungen eines Quorum-Verlusts.
- Du unterscheidest Anwendungssicherung von Clusterzustandssicherung.
10.8. Modul P5: CNI, Service-Netzwerk und Load Balancing
Inhalte:
- CNI-Aufgaben
- Pod-Netzwerk
- Service-Netzwerk
- kube-proxy
- eBPF-Dataplanes
- ClusterIP-Implementierung
- LoadBalancer-Integration
- Ingress Controller
- Gateway Controller
- NetworkPolicy-Unterstützung
- DNS und CoreDNS
- Service Mesh als optionales Zusatzmodell
Übung:
Analysiere den Netzwerkpfad einer Anfrage:
Client -> Load Balancer -> Ingress/Gateway -> Service -> EndpointSlice -> Pod
Dokumentiere je Hop:
- beteiligte Kubernetes-Ressource
- beteiligte Plattformkomponente
- mögliche Fehlerquelle
- passende Diagnosebefehle
10.9. Modul P6: CSI und Storage-Betrieb
Inhalte:
- CSI-Treiber
- StorageClasses
- dynamische Provisionierung
- Reclaim Policies
- Volume Binding Mode
- Snapshots
- Volume Expansion
- Performanceklassen
- Backup und Restore für Stateful Workloads
- Datenresidenz
- Verschlüsselung
Übung:
Erstelle ein Storage-Design für drei Workload-Typen:
- zustandslose API
- Datenbank
- Message Broker
Bewerte jeweils:
- Persistenzbedarf
- Backup-Ziel
- Restore-Zeit
- Performancebedarf
- Verfügbarkeitsanforderung
- Risiken bei Node-Ausfall
10.10. Modul P7: Observability
Inhalte:
- Metriken
- Logs
- Traces
- Events
- Kubernetes-Objektstatus
- Prometheus
- Grafana
- Loki
- Tempo
- OpenTelemetry
- Alerting
- SLOs und SLIs
- Golden Signals
- Runbooks
Übung:
Entwirf ein Observability-Modell für eine Beispielanwendung:
- Welche Metriken brauchst du?
- Welche Logs brauchst du?
- Welche Traces helfen bei Fehleranalyse?
- Welche Kubernetes-Events sind relevant?
- Welche Alerts sind sinnvoll?
- Welche Alerts wären nur Rauschen?
Abnahmekriterien:
- Du trennst Infrastruktur-, Plattform- und Anwendungssignale.
- Du definierst Alerts mit Handlungspfad.
- Du vermeidest reine Symptommetriken ohne Kontext.
10.11. Modul P8: GitOps und Delivery
Inhalte:
- Git als gewünschter Zustand
- Pull-basiertes Deployment
- Argo CD
- Flux
- Drift Detection
- Sync Waves
- Health Checks
- Secrets im GitOps-Modell
- Umgebungsvarianten
- Promotion von Releases
- Rollback über Git
- Policy Gates in CI/CD
Übung:
- Strukturiere ein GitOps-Repository für Dev, Stage und Prod.
- Definiere, welche Dateien von Teams gepflegt werden.
- Definiere, welche Dateien Plattformstandard sind.
- Lege Validierungsschritte fest.
- Beschreibe den Rollback-Pfad.
10.12. Modul P9: Plattform-Add-ons
Typische Add-ons:
- Metrics Server
- Ingress Controller
- Gateway Controller
- cert-manager
- ExternalDNS
- Cluster Autoscaler
- Karpenter oder alternatives Node-Autoscaling
- CNI-Plugin
- CSI-Treiber
- Observability-Komponenten
- Policy Engines
- External Secrets Operator
- Argo CD oder Flux
Bewertung je Add-on:
| Frage | Bedeutung |
|---|---|
| Wer betreibt das Add-on? | klare Verantwortung verhindert blinde Flecken |
| Welche Rechte braucht es? | Add-ons haben oft weitreichende Clusterrechte |
| Wie wird es aktualisiert? | Add-ons können Cluster-Upgrades blockieren |
| Wie wird es überwacht? | Plattformkomponenten brauchen eigene Alerts |
| Wie wird es rückgebaut? | Test- und Fehlerpfade müssen bekannt sein |
10.13. Modul P10: Multi-Tenancy
Inhalte:
- Namespace-Strategie
- RBAC pro Team
- ResourceQuota
- LimitRange
- NetworkPolicies
- Pod Security Admission
- getrennte Node Pools
- RuntimeClass
- Admission Policies
- Secret-Isolation
- Logging- und Monitoring-Isolation
- Kostenstellen und Labels
Übung:
Entwirf ein Mandantenmodell für drei Teams:
- Team A: interne API
- Team B: Batch Workloads
- Team C: sensible Datenverarbeitung
Dokumentiere:
- Namespaces
- Rollen und Berechtigungen
- Quotas
- Netzwerkregeln
- Pod Security-Level
- Ausnahmen und Genehmigungsprozess
10.14. Modul P11: Kosten und Kapazität
Inhalte:
- Requests als Planungsgrundlage
- Overcommitment
- Idle Capacity
- Namespace-Kosten
- Labels für Kostenstellen
- HPA, VPA und Cluster Autoscaler
- Spot- oder Preemptible Nodes
- Rechte und Risiken von Autoscaling
- Kostenmetriken
Übung:
Analysiere einen Namespace:
- Summe der CPU Requests
- Summe der Memory Requests
- tatsächliche Nutzung
- nicht genutzte Kapazität
- Workloads ohne Requests
- mögliche Optimierungen
10.15. Modul P12: Backup, Restore und Disaster Recovery
Inhalte:
- etcd-Backup
- Anwendungsdaten-Backup
- Kubernetes-Manifeste
- Secrets
- PV-Snapshots
- Restore-Reihenfolge
- RPO und RTO
- Cluster-Neuaufbau
- GitOps-Rehydration
- Disaster-Recovery-Tests
Übung:
Erstelle ein DR-Konzept für eine Anwendung mit Datenbank:
- Was wird gesichert?
- Wie oft wird gesichert?
- Wo wird gesichert?
- Wer darf wiederherstellen?
- Wie wird ein Restore getestet?
- Welche Reihenfolge gilt beim Wiederanlauf?
11. Level 4: Advanced und Security
11.1. Ziel
Du kannst Kubernetes härten, Risiken bewerten, Angriffe erkennen und Incidents strukturiert bearbeiten. Der Fokus liegt auf API-Zugriff, RBAC, Admission, Pod Security, Netzwerksegmentierung, Secret-Schutz, Image Supply Chain, Runtime Detection und Forensik.
11.2. Zielgruppe
- Security Engineers
- DevSecOps Engineers
- Platform Engineers
- SREs
- Incident-Response-Teams
- Architekten mit Sicherheitsverantwortung
11.3. Lernziele
Nach diesem Level kannst du:
- ein Kubernetes-Bedrohungsmodell erstellen.
- Authentifizierung, Autorisierung und Admission unterscheiden.
- RBAC Least Privilege umsetzen und prüfen.
- ServiceAccounts und Tokens sicher gestalten.
- Pod Security Standards anwenden.
- SecurityContexts bewerten.
- Capabilities, seccomp, AppArmor und SELinux einordnen.
- NetworkPolicies und CNI-spezifische Policies nutzen.
- Secrets sicherer verwalten.
- Image- und Supply-Chain-Risiken reduzieren.
- Runtime Security und Incident Response strukturieren.
11.4. Modul S1: Kubernetes Threat Modeling
Inhalte:
- Assets im Cluster
- Angriffsflächen
- API Server als zentrales Ziel
- ServiceAccount-Tokens
- Secrets
- Container Escape-Risiken
- privilegierte Pods
- laterale Bewegung
- Supply-Chain-Risiken
- unsichere Admission-Ausnahmen
- Cluster-Admin-Wildwuchs
Übung:
Erstelle ein Bedrohungsmodell für eine Beispielplattform. Dokumentiere:
- schützenswerte Assets
- mögliche Angreifer
- Einstiegspunkte
- Eskalationspfade
- technische Kontrollen
- Detektionssignale
- offene Risiken
11.5. Modul S2: Authentifizierung, Autorisierung und Admission
Inhalte:
- Authentifizierung: Wer bist du?
- Autorisierung: Was darfst du?
- Admission: Ist diese Änderung erlaubt oder wird sie mutiert?
- User, Groups und ServiceAccounts
- RBAC
- Webhook Authorization
- Mutating Admission Webhooks
- Validating Admission Webhooks
- ValidatingAdmissionPolicy
- Audit Logs
Übung:
- Prüfe deine Rechte mit
kubectl auth can-i. - Erzeuge eine Rolle mit minimalen Rechten.
- Binde sie an einen ServiceAccount.
- Teste erlaubte und verbotene Aktionen.
- Dokumentiere erwartete Forbidden-Fehler.
11.6. Modul S3: RBAC Least Privilege
Inhalte:
- Role
- ClusterRole
- RoleBinding
- ClusterRoleBinding
- Verben
- Ressourcen
- API-Gruppen
- Namespaced vs clusterweit
- Aggregated ClusterRoles
- Impersonation
- gefährliche Rechte wie
*,create pods,bind,escalate,impersonate
Übung:
Erstelle ein RBAC-Modell für eine Anwendung:
- Deployment darf ConfigMaps lesen.
- Deployment darf keine Secrets auflisten.
- Operator darf nur Ressourcen im eigenen Namespace verwalten.
- Entwickler dürfen Logs lesen, aber keine ClusterRoles ändern.
Abnahmekriterien:
- Du vermeidest pauschale ClusterRoleBindings.
- Du kannst Rechte mit
kubectl auth can-i --asprüfen. - Du dokumentierst, warum ein Recht benötigt wird.
11.7. Modul S4: ServiceAccounts und Tokens
Inhalte:
- Default ServiceAccount
- automatische Token-Projektion
- Bound ServiceAccount Tokens
- Token-Lebensdauer
- Audience
- Workload Identity-Modelle
- Zugriff aus Pods
- Minimierung von API-Zugriff
Übung:
- Erstelle einen eigenen ServiceAccount.
- Weise ihn einem Deployment zu.
- Entferne unnötige API-Rechte.
- Prüfe Token-Mounting.
- Deaktiviere automatisches Token-Mounting, wenn es nicht gebraucht wird.
11.8. Modul S5: Pod Security Standards und Admission
Pod Security Standards definieren drei Policy-Level:
| Level | Zweck | Einsatz |
|---|---|---|
| Privileged | möglichst wenig Einschränkungen | nur für besonders privilegierte Systemkomponenten |
| Baseline | bekannte Privilege-Eskalationen reduzieren | allgemeiner Mindeststandard |
| Restricted | stärker gehärtete Workloads | sensible oder stark regulierte Workloads |
Inhalte:
- Pod Security Admission
- Namespace-Labels für enforce, audit und warn
- Baseline vs Restricted
- Ausnahmen
- Migration von alten Workloads
- Abgrenzung zu früherer PodSecurityPolicy
- Kombination mit Policy Engines
Übung:
- Aktiviere Pod Security Admission über Namespace-Labels in einer Lab-Umgebung.
- Erzeuge einen Pod, der gegen Restricted verstößt.
- Analysiere die Warnung oder Ablehnung.
- Härte den Pod schrittweise.
11.9. Modul S6: SecurityContext und Container-Härtung
Inhalte:
runAsNonRootrunAsUserrunAsGroupfsGroupreadOnlyRootFilesystemallowPrivilegeEscalation- Linux Capabilities
- seccomp
- AppArmor
- SELinux
- privileged Container
- hostNetwork, hostPID und hostIPC
- hostPath-Risiken
Beispiel:
securityContext:
runAsNonRoot: true
runAsUser: 1000
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
seccompProfile:
type: RuntimeDefault
capabilities:
drop:
- ALL
Übung:
- Prüfe einen unsicheren Pod.
- Ergänze SecurityContext-Einstellungen.
- Entferne unnötige Capabilities.
- Prüfe Kompatibilität mit der Anwendung.
- Dokumentiere notwendige Ausnahmen.
11.10. Modul S7: Netzwerkisolation
Inhalte:
- Default allow vs deny-by-default
- Ingress- und Egress-Regeln
- Namespace Selector
- Pod Selector
- IPBlock
- DNS-Ausnahmen
- CNI-spezifische Erweiterungen
- Cilium Policies
- Layer-7-Policies
- Service Mesh und mTLS
Übung:
- Erstelle eine deny-by-default Policy im Namespace.
- Erlaube Traffic vom Frontend zum Backend.
- Erlaube DNS-Traffic zu CoreDNS.
- Teste erlaubte und geblockte Verbindungen.
- Dokumentiere erwartetes Verhalten.
Abnahmekriterien:
- Du prüfst, ob dein CNI NetworkPolicies durchsetzt.
- Du testest Regeln praktisch.
- Du berücksichtigst DNS und externe Abhängigkeiten.
11.11. Modul S8: Secrets Security
Inhalte:
- Kubernetes Secrets
- Base64 und Verschlüsselung
- Encryption at Rest
- RBAC auf Secrets
- Secret-Verteilung
- externe Secret-Systeme
- External Secrets Operator
- SOPS
- Vault
- Cloud Secret Manager
- Rotation
- Auditierung
- versehentliches Logging
Übung:
Erarbeite ein Secret-Modell:
- Welche Secrets liegen in Kubernetes?
- Welche Secrets bleiben extern?
- Wer darf Secrets lesen?
- Wie werden Secrets rotiert?
- Wie wird verhindert, dass Secrets in Git oder Logs landen?
11.12. Modul S9: Image Security und Supply Chain
Inhalte:
- Image Tags vs Digests
- minimale Base Images
- Vulnerability Scanning
- SBOM
- Signaturen
- Cosign
- SLSA-Grundidee
- Admission Policies für Images
- private Registries
- ImagePullSecrets
- Provenance
Übung:
- Prüfe ein Image auf Tag-Strategie.
- Ersetze ein unspezifisches Tag durch einen Digest.
- Definiere eine Policy für erlaubte Registries.
- Beschreibe, wie Signaturprüfung in Admission integriert wird.
11.13. Modul S10: Runtime Security
Inhalte:
- verdächtige Prozessstarts
- Shell in Containern
- Schreibzugriffe auf Systempfade
- Netzwerkverbindungen
- Zugriff auf ServiceAccount-Tokens
- Falco
- Tetragon
- eBPF-basierte Signale
- RuntimeClass
- Sandboxed Runtimes
Übung:
- Definiere relevante Runtime-Signale.
- Ordne Signale realen Angriffspfaden zu.
- Entwirf Alerts mit Handlungspfad.
- Unterscheide Fehlalarm und echter Incident.
11.14. Modul S11: Incident Response und Forensik
Inhalte:
- Incident-Klassifizierung
- Eindämmung
- Beweissicherung
- Pod- und Node-Zustand sichern
- Logs, Events und Audit Logs
- verdächtige RBAC-Änderungen
- verdächtige Images
- verdächtige Secrets-Zugriffe
- laterale Bewegung
- Recovery und Lessons Learned
Übung:
Du erhältst ein kompromittiertes Lab-Szenario. Bearbeite:
- Erste Triage
- betroffene Ressourcen identifizieren
- Ausbreitung prüfen
- Eindämmung planen
- Beweise sichern
- Ursache ableiten
- Korrekturmaßnahmen definieren
- Nachbereitung dokumentieren
Abnahmekriterien:
- Du löschst Beweise nicht vorschnell.
- Du trennst Eindämmung von Ursachenanalyse.
- Du dokumentierst Entscheidungen und Annahmen.
12. Praxisumgebung
12.1. Varianten
| Umgebung | Geeignet für | Vorteile | Grenzen |
|---|---|---|---|
| kind | lokale Labs, CI-Tests, schnelle Übungen | schnell, reproduzierbar, leicht rückbaubar | kein vollständiges Cloud-Load-Balancing |
| minikube | lokale Einsteigerübungen | einfache Add-ons, gute Lernumgebung | weniger nah an Multi-Node-Produktion |
| k3d | lokale k3s-Cluster | leichtgewichtig, schnell | k3s-spezifische Unterschiede |
| kubeadm-VMs | Architektur- und Admin-Labs | nah am selbst betriebenen Cluster | mehr Setup-Aufwand |
| Managed Kubernetes | Plattform- und Cloud-Labs | produktionsnah, Cloud-Integration | Kosten, Provider-spezifische Unterschiede |
12.2. Mindestanforderungen an den Lab-Cluster
Für Fundamentals:
- ein funktionierender Cluster
- ein eigener Namespace pro Teilnehmer oder Team
- Rechte für Pods, Deployments, Services, ConfigMaps und Secrets
- Zugriff auf Logs und Events
Für Intermediate:
- Metrics Server
- Ingress Controller oder Gateway Controller
- StorageClass
- Möglichkeit für NetworkPolicies
- optional Helm und Kustomize
Für Professional:
- Zugriff auf Cluster-Add-ons
- Beobachtbarkeitssystem oder Demo-Stack
- Möglichkeit, Nodes oder Node Pools zu betrachten
- optional kubeadm-Lab oder Managed-Kubernetes-Sandbox
Für Advanced und Security:
- RBAC-Testumgebung
- Pod Security Admission
- NetworkPolicy-fähiges CNI
- Test-Registry oder Beispielimages
- optional Falco, Tetragon, Cilium oder Policy Engine
12.3. Namenskonventionen
Empfohlene Konvention:
namespace: workshop-<name>
app: <team>-<app>
labels: app.kubernetes.io/name, app.kubernetes.io/part-of, app.kubernetes.io/component
Beispiel:
metadata:
labels:
app.kubernetes.io/name: web
app.kubernetes.io/part-of: kubernetes-workshop
app.kubernetes.io/component: frontend
training.kubernetes.io/owner: team-a
12.4. Sicherheitsregeln für Labs
- Verwende keine echten produktiven Secrets.
- Nutze dedizierte Namespaces.
- Lösche Lab-Ressourcen nach der Übung.
- Nutze keine Cluster-Admin-Rechte, wenn Namespace-Rechte reichen.
- Dokumentiere absichtliche Policy-Ausnahmen.
- Prüfe vor destruktiven Befehlen den aktuellen Kontext.
13. Workshop-Labs
13.1. Lab 0: Setup und Orientierung
Ziel:
Du stellst sicher, dass dein Zugriff funktioniert und du im richtigen Cluster arbeitest.
Aufgaben:
- Prüfe die lokale
kubectl-Version. - Prüfe den aktuellen Kontext.
- Zeige Nodes und Namespaces an.
- Erstelle deinen Workshop-Namespace.
- Prüfe deine Berechtigungen.
Kommandos:
kubectl version --client
kubectl config current-context
kubectl get nodes
kubectl create namespace workshop-<name>
kubectl auth can-i create deployments -n workshop-<name>
Ergebnis:
Du kannst sicher sagen, in welchem Cluster und Namespace du arbeitest.
13.2. Lab 1: Erste Anwendung deployen
Ziel:
Du deployst eine einfache Webanwendung mit Deployment und Service.
Aufgaben:
- Erstelle ein Deployment.
- Skaliere auf zwei Replikate.
- Erstelle einen ClusterIP-Service.
- Prüfe Pods, ReplicaSets und Endpoints.
- Teste die Anwendung aus einem Debug-Pod.
Ergebnis:
Die Anwendung ist intern im Cluster erreichbar.
13.3. Lab 2: Rollout und Rollback
Ziel:
Du steuerst eine Änderung kontrolliert und führst bei Fehlern einen Rollback aus.
Aufgaben:
- Ändere das Image auf eine neue Version.
- Beobachte den Rollout.
- Setze ein ungültiges Image.
- Analysiere den Fehler.
- Führe einen Rollback aus.
Ergebnis:
Du kannst eine fehlerhafte Änderung erkennen und zurückdrehen.
13.4. Lab 3: Konfiguration und Secrets
Ziel:
Du trennst Anwendungscode von Laufzeitkonfiguration.
Aufgaben:
- Erstelle eine ConfigMap.
- Erstelle ein Secret mit Dummy-Werten.
- Binde beide in ein Deployment ein.
- Prüfe Werte im Pod.
- Ändere die Konfiguration und löse einen Rollout aus.
Ergebnis:
Die Anwendung nutzt externe Konfiguration und keine fest eingebauten Werte.
13.5. Lab 4: Probes und Ressourcen
Ziel:
Du machst eine Anwendung rolloutsicherer und planbarer.
Aufgaben:
- Ergänze Readiness Probe.
- Ergänze Liveness Probe.
- Ergänze Startup Probe, falls Startzeit relevant ist.
- Setze Requests und Limits.
- Prüfe Events und QoS-Klasse.
Ergebnis:
Der Workload ist besser planbar und gibt Kubernetes sinnvolle Gesundheitssignale.
13.6. Lab 5: Ingress, Gateway oder externer Zugriff
Ziel:
Du machst eine Anwendung über HTTP erreichbar.
Aufgaben:
- Prüfe vorhandenen Ingress- oder Gateway-Controller.
- Erstelle eine Routing-Ressource.
- Konfiguriere Hostname oder Pfad.
- Prüfe TLS-Annahmen.
- Teste den Zugriff.
Ergebnis:
Du verstehst den Weg von externem Traffic zur Anwendung.
13.7. Lab 6: Storage
Ziel:
Du verwendest persistente Daten in Kubernetes.
Aufgaben:
- Prüfe StorageClasses.
- Erstelle einen PVC.
- Binde den PVC in einen Pod ein.
- Schreibe Daten.
- Lösche und ersetze den Pod.
- Prüfe die Daten erneut.
Ergebnis:
Du verstehst den Unterschied zwischen Pod-Lebensdauer und Daten-Lebensdauer.
13.8. Lab 7: RBAC
Ziel:
Du erstellst minimale Rechte für einen ServiceAccount.
Aufgaben:
- Erstelle einen ServiceAccount.
- Erstelle eine Role mit minimalen Rechten.
- Erstelle eine RoleBinding.
- Prüfe Rechte mit
kubectl auth can-i. - Teste verbotene Aktionen.
Ergebnis:
Du kannst Least Privilege praktisch umsetzen.
13.9. Lab 8: NetworkPolicies
Ziel:
Du isolierst Workloads im Namespace.
Aufgaben:
- Erstelle eine deny-by-default Policy.
- Erlaube gezielt Frontend-zu-Backend-Traffic.
- Erlaube DNS-Traffic.
- Teste erlaubte und geblockte Verbindungen.
- Dokumentiere Annahmen zum CNI.
Ergebnis:
Du kannst Netzwerkkommunikation im Cluster kontrollieren.
13.10. Lab 9: Fehleranalyse
Ziel:
Du analysierst mehrere typische Fehlerbilder.
Fehlerfälle:
- Pod Pending
- CrashLoopBackOff
- ImagePullBackOff
- Service ohne Endpoints
- DNS-Auflösung schlägt fehl
- PVC Pending
- RBAC Forbidden
- OOMKilled
- hängender Rollout
Vorgehen:
- Symptom beschreiben.
- relevante Ressourcen anzeigen.
- Events prüfen.
- Logs prüfen.
- Ursache ableiten.
- minimale Korrektur durchführen.
- Erfolg validieren.
Ergebnis:
Du kannst Fehler systematisch bearbeiten und dokumentieren.
13.11. Lab 10: Plattform-Blueprint
Ziel:
Du entwirfst eine produktionsnahe Kubernetes-Plattform.
Aufgaben:
- Wähle ein Betriebsmodell.
- Definiere Cluster- und Namespace-Struktur.
- Definiere Add-ons.
- Definiere Observability.
- Definiere Security-Baseline.
- Definiere Backup und Restore.
- Definiere Upgrade- und Rollback-Prozess.
Ergebnis:
Du kannst Architekturentscheidungen begründen.
13.12. Lab 11: Security Review
Ziel:
Du prüfst eine Anwendung auf Kubernetes-Sicherheitsrisiken.
Prüfpunkte:
- ServiceAccount
- RBAC
- Secrets
- SecurityContext
- Pod Security-Level
- NetworkPolicies
- Image-Quelle
- Ressourcenangaben
- Host-Zugriffe
- Privilegien
- Logs und sensible Daten
Ergebnis:
Du erstellst einen Security-Befund mit Priorität, Risiko und Korrekturvorschlag.
14. Abschlussprojekte
14.1. Projekt A: Produktionsnaher App-Rollout
Zielgruppe:
- Entwickler
- DevOps Engineers
- Intermediate-Teilnehmer
Aufgabe:
Du erhältst eine einfache Anwendung und sollst sie produktionsnah in Kubernetes ausrollen.
Mindestanforderungen:
- Namespace
- Deployment mit mindestens zwei Replikaten
- Service
- ConfigMap
- Secret mit Dummy-Werten
- Readiness und Liveness Probe
- Requests und Limits
- Rollout- und Rollback-Dokumentation
- Debugging-Nachweise
- Rückbauanleitung
Erweiterungen:
- Ingress oder Gateway API
- HPA
- PDB
- NetworkPolicy
- Helm oder Kustomize
Bewertung:
- Funktionalität
- Robustheit
- Nachvollziehbarkeit
- Betriebsreife
- Security-Baseline
14.2. Projekt B: Plattform-Design
Zielgruppe:
- Platform Engineers
- SREs
- Tech Leads
- Professional-Teilnehmer
Aufgabe:
Du entwirfst eine Kubernetes-Plattform für mehrere Teams.
Mindestanforderungen:
- Clusterstrategie
- Namespace- und Mandantenmodell
- RBAC-Design
- Quotas und LimitRanges
- Netzwerkmodell
- Ingress- oder Gateway-Strategie
- Storage-Strategie
- Observability-Konzept
- GitOps-Konzept
- Backup- und DR-Konzept
- Upgrade-Strategie
- Add-on-Verantwortlichkeiten
Bewertung:
- klare Verantwortungsgrenzen
- realistische Betriebsannahmen
- Upgradefähigkeit
- Sicherheitsniveau
- Skalierbarkeit
- Verständlichkeit
14.3. Projekt C: Kubernetes Security Assessment
Zielgruppe:
- Security Engineers
- DevSecOps
- Advanced-Teilnehmer
Aufgabe:
Du prüfst ein Beispielcluster- oder Beispielnamespace-Setup auf Sicherheitsrisiken.
Mindestanforderungen:
- RBAC-Review
- ServiceAccount-Review
- Pod Security-Review
- SecurityContext-Review
- Secret-Review
- NetworkPolicy-Review
- Image- und Registry-Review
- Admission-Review
- Runtime-Signal-Modell
- Incident-Response-Kurzplan
Bewertung:
- Risikobewertung
- Nachvollziehbare Evidenz
- Priorisierung
- realistische Korrekturvorschläge
- keine unnötig destruktiven Maßnahmen
15. Bewertungsraster
15.1. Allgemeines Raster
| Kategorie | 0 Punkte | 1 Punkt | 2 Punkte | 3 Punkte |
|---|---|---|---|---|
| Funktion | funktioniert nicht | teilweise funktionsfähig | funktionsfähig mit kleinen Mängeln | vollständig funktionsfähig |
| Kubernetes-Modell | Begriffe falsch verwendet | Grundbegriffe teilweise korrekt | Ressourcenmodell überwiegend korrekt | Ressourcenmodell sicher erklärt |
| Manifestqualität | unvollständig oder nicht anwendbar | anwendbar, aber unstrukturiert | sauber strukturiert | versionierbar, klar, wartbar |
| Betrieb | keine Validierung | einfache Sichtprüfung | Logs, Events und Status genutzt | vollständige Diagnose und Rückbau |
| Security | keine Kontrollen | minimale Kontrollen | sinnvolle Baseline | Least Privilege und Policy sauber umgesetzt |
| Dokumentation | fehlt | knapp | nachvollziehbar | reviewfähig und betrieblich brauchbar |
15.2. Bestehensgrenze
Eine Übung gilt als bestanden, wenn:
- die Funktion nachweisbar gegeben ist,
- die wichtigsten Ressourcen korrekt benannt und erklärt werden,
- mindestens ein Validierungsschritt dokumentiert ist,
- kein echtes Secret verwendet wurde,
- ein Rückbaupfad vorhanden ist.
15.3. Kriterien für sehr gute Lösungen
Eine Lösung ist sehr gut, wenn sie:
- deklarativ und reproduzierbar ist,
- klare Labels und Namenskonventionen nutzt,
- Ressourcenangaben enthält,
- Health Checks sinnvoll setzt,
- Rollout und Rollback berücksichtigt,
- SecurityContext und ServiceAccount bewusst setzt,
- Netzwerkzugriffe begrenzt,
- relevante Fehlerbilder dokumentiert,
- mit
kubectl diffoder Server-side Dry Run validiert wurde, - keine unnötigen Clusterrechte benötigt.
16. Agenda-Varianten
16.1. Kompaktworkshop: 1 Tag
Ziel:
Du bekommst einen praxisnahen Einstieg und kannst einfache Workloads deployen.
| Zeitblock | Thema |
|---|---|
| 09:00 - 09:30 | Überblick, Architektur, Zielbild |
| 09:30 - 10:30 | Cluster, Namespaces, Pods, kubectl |
| 10:45 - 12:00 | Deployments, ReplicaSets, Services |
| 13:00 - 14:00 | ConfigMaps, Secrets, Probes |
| 14:00 - 15:00 | Rollouts, Logs, Events, Debugging |
| 15:15 - 16:15 | Ressourcen, HPA-Grundidee, PDB-Grundidee |
| 16:15 - 17:00 | Abschlussübung und Review |
Nicht enthalten:
- tiefer Plattformbetrieb
- kubeadm-Lifecycle
- vollständige Security-Härtung
- Multi-Tenancy-Design
16.2. Standardworkshop: 2 Tage
Ziel:
Du kannst produktionsnahe Workloads erstellen und typische Fehler analysieren.
Tag 1
| Zeitblock | Thema |
|---|---|
| 09:00 - 10:00 | Architektur und Ressourcenmodell |
| 10:00 - 11:30 | Pods, Deployments, Services |
| 11:30 - 12:00 | Labels, Selectors, DNS |
| 13:00 - 14:00 | ConfigMaps und Secrets |
| 14:00 - 15:00 | Probes und Rollouts |
| 15:15 - 16:30 | Ressourcenmanagement |
| 16:30 - 17:00 | Tagesreview |
Tag 2
| Zeitblock | Thema |
|---|---|
| 09:00 - 10:00 | Storage und PVCs |
| 10:00 - 11:00 | Ingress, Gateway API und NetworkPolicies |
| 11:00 - 12:00 | Helm und Kustomize |
| 13:00 - 14:30 | Debugging und typische Fehlerbilder |
| 14:30 - 15:30 | RBAC und Pod Security-Baseline |
| 15:45 - 16:45 | Abschlussprojekt |
| 16:45 - 17:00 | Review und nächste Schritte |
16.3. Professional-Workshop: 3 Tage
Ziel:
Du kannst Workloads betreiben und Plattformentscheidungen treffen.
Tag 1
- Kubernetes-Grundlagen auffrischen
- Workload-Controller vertiefen
- Ressourcen, Probes, Rollouts
- Debugging-Labs
Tag 2
- Netzwerk, Ingress, Gateway API
- Storage und CSI
- Scheduling
- Helm, Kustomize und GitOps
Tag 3
- Clusterarchitektur
- Distributionen und kubeadm
- Observability
- Multi-Tenancy
- Backup und DR
- Plattform-Blueprint
16.4. Security-Workshop: 2 Tage
Ziel:
Du kannst Kubernetes-spezifische Sicherheitsrisiken erkennen und reduzieren.
Tag 1
| Zeitblock | Thema |
|---|---|
| 09:00 - 10:00 | Threat Modeling |
| 10:00 - 11:30 | Authentifizierung, Autorisierung, Admission |
| 11:30 - 12:00 | RBAC-Analyse |
| 13:00 - 14:00 | ServiceAccounts und Tokens |
| 14:00 - 15:30 | Pod Security Standards |
| 15:45 - 17:00 | SecurityContext-Lab |
Tag 2
| Zeitblock | Thema |
|---|---|
| 09:00 - 10:30 | NetworkPolicies und CNI-Policies |
| 10:30 - 11:30 | Secrets Security |
| 11:30 - 12:00 | Image Security und Supply Chain |
| 13:00 - 14:00 | Runtime Security |
| 14:00 - 15:30 | Incident Response |
| 15:45 - 17:00 | Security Assessment und Review |
16.5. Vollständige Enablement-Reihe: 6 bis 8 Tage
Ziel:
Du baust nachhaltige Kubernetes-Kompetenz im Team auf.
Empfohlene Struktur:
- Tag: Fundamentals
- Tag: Workloads und Konfiguration
- Tag: Netzwerk, Storage und Scheduling
- Tag: Debugging, Helm, Kustomize und Delivery
- Tag: Plattformarchitektur und kubeadm
- Tag: Observability, GitOps, Multi-Tenancy und DR
- Tag: Security-Härtung
- Tag: Incident Response, Abschlussprojekt und Review
17. Trainerleitfaden
17.1. Vorbereitung
Vor dem Workshop solltest du:
- die Clusterumgebung testen,
- Namespaces oder Zugänge vorbereiten,
- Berechtigungen prüfen,
- Beispielmanifeste validieren,
- absichtliche Fehlerfälle vorbereiten,
- Rückbaukommandos dokumentieren,
- Provider-spezifische Unterschiede notieren,
- Netzwerk- und Storage-Funktionen testen,
- Ingress oder Gateway API nur einplanen, wenn die Umgebung es unterstützt.
17.2. Durchführung
Gute Durchführung folgt diesem Muster:
- Konzept knapp erklären.
- Ressource im Manifest zeigen.
- Manifest anwenden.
- Status prüfen.
- Fehler provozieren.
- Fehler analysieren.
- Korrektur durchführen.
- Ergebnis dokumentieren.
17.3. Umgang mit gemischten Gruppen
In gemischten Gruppen solltest du:
- Einsteiger über klare Begriffe abholen,
- Fortgeschrittene über Fehlerfälle einbinden,
- Plattformthemen als optionale Vertiefung kennzeichnen,
- Security-Fragen früh aufnehmen, aber strukturiert einordnen,
- Labs in Basis- und Bonusaufgaben teilen.
17.4. Typische Zeitfallen
- lokale Setup-Probleme
- fehlende Clusterrechte
- nicht vorhandener Ingress Controller
- fehlende StorageClass
- NetworkPolicies ohne unterstützendes CNI
- Containerimages, die nicht pullbar sind
- DNS- oder Proxy-Probleme in Unternehmensnetzwerken
- zu große Themenblöcke ohne Übungen
17.5. Empfohlene Abgrenzung im Workshop
Kubernetes sollte nicht isoliert von angrenzenden Systemen betrachtet werden. Trotzdem muss klar bleiben, welches Werkzeug welche Verantwortung trägt.
| Thema | Kubernetes-Anteil | Nicht automatisch Kubernetes-Anteil |
|---|---|---|
| Build | Images ausführen | Images bauen |
| Deployment | gewünschter Zustand im Cluster | vollständige Release-Governance |
| Netzwerk | Services, Routing, Policies | Unternehmensnetz, DNS-Zonen, Firewalls außerhalb des Clusters |
| Storage | PVCs und Volumes anbinden | Datenbankschema, logische Backups |
| Security | RBAC, Admission, Pod Security | vollständige IAM-Strategie außerhalb des Clusters |
| Observability | Status, Events, Metriken | vollständige Incident-Organisation |
18. Lernkontrollen und Reflexionsfragen
18.1. Fundamentals
- Was ist der Unterschied zwischen Pod und Deployment?
- Warum sind Pods kurzlebig?
- Wie findet ein Service seine Pods?
- Was ist der Unterschied zwischen
specundstatus? - Warum ist
kubectl describebei Fehleranalyse oft wertvoller als nurkubectl get? - Wie erkennst du, ob ein Service Endpoints hat?
- Warum sollte ein Manifest versioniert werden?
18.2. Intermediate
- Wann brauchst du eine Startup Probe?
- Wie unterscheiden sich Readiness und Liveness?
- Was passiert, wenn ein Container sein Memory Limit überschreitet?
- Warum sind Requests für Scheduling wichtig?
- Warum löst eine ConfigMap-Änderung nicht immer automatisch einen Rollout aus?
- Wie analysierst du einen Pending Pod?
- Wie unterscheidest du DNS-, Service- und Endpoint-Probleme?
- Welche Risiken entstehen durch fehlende NetworkPolicies?
18.3. Professional
- Welche Verantwortung bleibt bei dir, wenn du Managed Kubernetes nutzt?
- Warum ist etcd besonders kritisch?
- Was bedeutet Version Skew?
- Wie planst du einen sicheren Cluster-Upgrade?
- Welche Add-ons sind kritisch für den Plattformbetrieb?
- Wie unterscheidest du Cluster-Backup und Anwendungsdaten-Backup?
- Wann ist Multi-Cluster sinnvoll?
- Welche Signale gehören in ein gutes Kubernetes-Observability-Modell?
18.4. Advanced und Security
- Warum ist ClusterRoleBinding mit
cluster-adminriskant? - Welche Rechte ermöglichen Privilege Escalation?
- Was leisten Pod Security Standards und was leisten sie nicht?
- Warum ist Base64 keine Verschlüsselung?
- Welche Risiken entstehen durch
hostPath? - Wie testest du NetworkPolicies?
- Welche Indikatoren sprechen für einen kompromittierten Pod?
- Was musst du sichern, bevor du einen verdächtigen Pod löschst?
19. Häufige Fehlannahmen
| Fehlannahme | Korrektur |
|---|---|
| Kubernetes startet nur Container. | Kubernetes verwaltet gewünschten Zustand, Netzwerk, Storage, Rollouts, Rechte und Erweiterungen. |
| Ein Pod ist wie eine VM. | Ein Pod ist kurzlebig und wird typischerweise durch Controller verwaltet. |
| Ein Service ist ein Load Balancer. | Ein Service ist eine stabile Abstraktion; externe Load Balancer entstehen nur bei bestimmten Service-Typen und passender Integration. |
| Secrets sind verschlüsselt, weil sie Base64-kodiert sind. | Base64 ist nur Kodierung. Schutz braucht RBAC, Encryption at Rest und gegebenenfalls externe Secret-Systeme. |
| Liveness Probes machen Anwendungen stabiler. | Falsch konfigurierte Liveness Probes können Anwendungen instabiler machen. |
| Limits sind immer gut. | Zu enge Limits können OOMKills oder CPU-Throttling verursachen. |
| NetworkPolicies wirken immer. | Sie werden nur durchgesetzt, wenn das CNI-Plugin sie unterstützt. |
| Ingress funktioniert ohne Controller. | Ingress-Ressourcen brauchen einen passenden Controller. |
| GitOps ersetzt Tests. | GitOps synchronisiert Zielzustand, ersetzt aber keine Validierung. |
| Managed Kubernetes bedeutet kein Plattformbetrieb. | Viele Betriebsaufgaben bleiben: Add-ons, Policies, Workloads, Kosten, Observability und Security. |
| Security ist ein separates Kapitel am Ende. | Security muss in Architektur, Workloads, Netzwerk, Delivery und Betrieb integriert werden. |
20. Empfohlene Dauer
| Level | Zielgruppe | Dauer | Ergebnis |
|---|---|---|---|
| Fundamentals | Einsteiger, Junior DevOps, Entwickler, Admins | 1 Tag | einfache Anwendungen deployen, prüfen und zurückbauen |
| Intermediate | DevOps, System Engineers, Kubernetes-Anwender | 1 bis 2 Tage | produktionsnahe Workloads konfigurieren und debuggen |
| Professional | Platform Engineers, Cloud Engineers, SREs, Tech Leads | 2 bis 3 Tage | Plattformarchitektur und Betrieb bewerten |
| Advanced und Security | Security Engineers, DevSecOps, Plattformarchitekten | 1 bis 2 Tage | Kubernetes härten und Incidents strukturieren |
| Vollständige Reihe | gemischte Plattform- und Anwendungsteams | 6 bis 8 Tage | vollständiger Lernpfad mit Abschlussprojekt |
20.1. Dauer nach Tiefe
| Tiefe | Dauer | Fokus |
|---|---|---|
| Awareness | 2 bis 4 Stunden | Begriffe, Architektur, Risiken |
| Hands-on Einstieg | 1 Tag | Deployments, Services, Logs, Events |
| Produktionsnaher Einstieg | 2 Tage | Probes, Ressourcen, Storage, Ingress, Debugging |
| Plattformtraining | 3 bis 5 Tage | Clusterbetrieb, Add-ons, GitOps, DR |
| Security-Vertiefung | 2 Tage | Härtung, Policy, Runtime, Incident Response |
21. Mapping zu Praxisrollen
21.1. Entwickler
Pflichtthemen:
- Namespaces
- Pods
- Deployments
- Services
- ConfigMaps
- Secrets-Grundlagen
- Probes
- Ressourcenangaben
- Logs und Events
- Rollout und Rollback
Optionale Themen:
- HPA
- Ingress oder Gateway API
- Helm oder Kustomize
- NetworkPolicies
21.2. DevOps Engineers
Pflichtthemen:
- alle Entwicklerthemen
- Workload-Controller
- Storage
- Scheduling
- Helm und Kustomize
- CI/CD-Validierung
- Debugging
- RBAC-Grundlagen
- PDB und HPA
Optionale Themen:
- GitOps
- Observability
- kubeadm
- SecurityContext
21.3. Platform Engineers
Pflichtthemen:
- Clusterarchitektur
- Distributionen
- CNI und CSI
- Ingress und Gateway API
- Observability
- GitOps
- Multi-Tenancy
- Add-ons
- Backup und DR
- Upgrade-Strategie
- Kostensteuerung
Optionale Themen:
- Runtime Security
- Service Mesh
- Cluster API
- Policy Engines
21.4. Security Engineers
Pflichtthemen:
- Threat Modeling
- RBAC
- ServiceAccounts
- Pod Security Standards
- Admission Control
- SecurityContext
- NetworkPolicies
- Secrets Security
- Image Security
- Runtime Detection
- Incident Response
Optionale Themen:
- Service Mesh Security
- eBPF-basierte Security
- Forensik auf Node-Ebene
- Compliance-Automatisierung
22. Weiterführende Themen
Diese Themen eignen sich für Vertiefungsmodule oder separate Workshops:
- Kubernetes API intern
- Controller-Entwicklung
- Operator SDK
- CustomResourceDefinitions
- ValidatingAdmissionPolicy
- Policy-as-Code mit Kyverno, Gatekeeper oder Validating Admission Policies
- Service Mesh mit Istio, Linkerd oder Consul
- eBPF und Cilium
- Cluster API
- Multi-Cluster-GitOps
- Progressive Delivery mit Argo Rollouts oder Flagger
- Canary, Blue-Green und A/B-Deployments
- Workload Identity
- Confidential Containers
- Sandbox-Runtimes
- GPU- und Accelerator-Scheduling
- Dynamic Resource Allocation
- Backup-Lösungen wie Velero
- Kubernetes-Kostenmanagement
- FinOps für Plattformteams
- SLO Engineering auf Kubernetes
- Chaos Engineering
22.1. Vertiefungsmodul: Controller und Operatoren
Lernziele:
- Du verstehst, wie Controller gewünschte Zustände abgleichen.
- Du kannst CRDs als API-Erweiterung einordnen.
- Du erkennst Risiken durch schlecht betriebene Operatoren.
Inhalte:
- Reconciliation Loop
- Owner References
- Finalizers
- Conditions
- CRDs
- Controller Runtime
- Operator-Pattern
- Upgrade- und Backup-Fragen bei CRDs
22.2. Vertiefungsmodul: Policy-as-Code
Lernziele:
- Du kannst technische Plattformregeln automatisiert prüfen.
- Du verstehst Unterschied zwischen Validierung, Mutation und Audit.
Inhalte:
- Admission Control
- ValidatingAdmissionPolicy
- Kyverno
- Gatekeeper
- Policy-Tests
- Ausnahmeprozesse
- CI/CD-Policy-Prüfung
22.3. Vertiefungsmodul: Progressive Delivery
Lernziele:
- Du kannst Risiken bei Releases reduzieren.
- Du verstehst Rollout-Strategien jenseits des Standard-Rolling-Updates.
Inhalte:
- Canary
- Blue-Green
- Feature Flags
- Traffic Splitting
- Metrikbasierte Promotion
- automatische Rollbacks
- Argo Rollouts
- Flagger
22.4. Vertiefungsmodul: Kubernetes für regulierte Umgebungen
Lernziele:
- Du kannst Audit-, Compliance- und Nachvollziehbarkeitsanforderungen in Kubernetes übersetzen.
Inhalte:
- Audit Logs
- RBAC-Nachweise
- Policy Reports
- Image Provenance
- Secret-Rotation
- Verschlüsselung
- Mandantentrennung
- Backup-Nachweise
- Change Management
23. Quellen und Referenzen
Die folgenden Referenzen eignen sich zur fachlichen Vertiefung und zur Aktualisierung des Curriculums:
- Kubernetes Dokumentation: https://kubernetes.io/docs/
- Kubernetes Konzepte: https://kubernetes.io/docs/concepts/
- Kubernetes Komponenten: https://kubernetes.io/docs/concepts/overview/components/
- Kubernetes API-Konzepte: https://kubernetes.io/docs/reference/using-api/api-concepts/
- Pods: https://kubernetes.io/docs/concepts/workloads/pods/
- Deployments: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
- Services: https://kubernetes.io/docs/concepts/services-networking/service/
- Gateway API: https://kubernetes.io/docs/concepts/services-networking/gateway/
- NetworkPolicies: https://kubernetes.io/docs/concepts/services-networking/network-policies/
- PersistentVolumes: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
- Ressourcenmanagement: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
- Probes: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
- RBAC: https://kubernetes.io/docs/reference/access-authn-authz/rbac/
- Pod Security Standards: https://kubernetes.io/docs/concepts/security/pod-security-standards/
- kubectl Referenz: https://kubernetes.io/docs/reference/kubectl/
- kubeadm Referenz: https://kubernetes.io/docs/reference/setup-tools/kubeadm/
- kubeadm Cluster erstellen: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
- kubeadm Upgrade: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
- etcd Disaster Recovery: https://etcd.io/docs/
- Helm Dokumentation: https://helm.sh/docs/
- Kustomize Dokumentation: https://kubectl.docs.kubernetes.io/references/kustomize/
- Argo CD Dokumentation: https://argo-cd.readthedocs.io/
- Flux Dokumentation: https://fluxcd.io/flux/
- Cilium Dokumentation: https://docs.cilium.io/
- Falco Dokumentation: https://falco.org/docs/
- OpenTelemetry Dokumentation: https://opentelemetry.io/docs/
Anhang A: Kurzmatrix der Kernressourcen
| Ressource | Level | Warum du sie kennen musst |
|---|---|---|
| Namespace | Fundamentals | logische Trennung und Scope für viele Ressourcen |
| Pod | Fundamentals | kleinste deploybare Einheit |
| Deployment | Fundamentals | Standardcontroller für zustandslose Anwendungen |
| ReplicaSet | Fundamentals | hält Replikate eines Pod Templates bereit |
| Service | Fundamentals | stabile Erreichbarkeit für flüchtige Pods |
| ConfigMap | Intermediate | nicht vertrauliche Konfiguration |
| Secret | Intermediate | vertrauliche Konfiguration mit zusätzlichem Schutzbedarf |
| Ingress | Intermediate | HTTP/HTTPS-Routing in den Cluster |
| Gateway API | Intermediate | erweitertes und rollenorientiertes Routing-Modell |
| PersistentVolumeClaim | Intermediate | Speicheranforderung eines Workloads |
| StorageClass | Intermediate | dynamische Speicherbereitstellung |
| HorizontalPodAutoscaler | Intermediate | automatische Skalierung auf Basis von Metriken |
| PodDisruptionBudget | Intermediate | Mindestverfügbarkeit bei freiwilligen Unterbrechungen |
| Role und RoleBinding | Advanced | namespaced RBAC |
| ClusterRole und ClusterRoleBinding | Advanced | clusterweite RBAC-Rechte |
| ServiceAccount | Advanced | Workload-Identität im Cluster |
| NetworkPolicy | Advanced | Netzwerksegmentierung |
| ResourceQuota | Professional | Ressourcenbegrenzung pro Namespace |
| LimitRange | Professional | Standard- und Grenzwerte pro Namespace |
| CustomResourceDefinition | Professional | Erweiterung der Kubernetes API |
Anhang B: Mindeststandard für Workshop-Manifeste
Jedes Manifest im Workshop sollte nach Möglichkeit enthalten:
- klare Namen,
- Namespace,
- Labels,
- definierte Selektoren,
- Ressourcenangaben,
- Probes bei langlebigen Anwendungen,
- SecurityContext, soweit anwendbar,
- keine echten Secrets,
- nachvollziehbare Image-Versionen,
- Kommentare nur dort, wo sie Verständnis schaffen.
Beispielstruktur:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
namespace: workshop
labels:
app.kubernetes.io/name: web
app.kubernetes.io/part-of: kubernetes-workshop
spec:
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: web
template:
metadata:
labels:
app.kubernetes.io/name: web
spec:
serviceAccountName: web
containers:
- name: web
image: nginx:1.27
ports:
- name: http
containerPort: 80
readinessProbe:
httpGet:
path: /
port: http
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: http
periodSeconds: 20
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
memory: "256Mi"
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
Anhang C: Rückbaucheckliste
Vor dem Ende einer Übung solltest du prüfen:
- Welche Namespaces wurden erstellt?
- Welche Deployments, Services, Jobs und Pods laufen noch?
- Welche PVCs und PVs bleiben erhalten?
- Welche LoadBalancer wurden erzeugt?
- Welche Secrets enthalten Testdaten?
- Welche RBAC-Bindings wurden erstellt?
- Welche NetworkPolicies beeinflussen weitere Übungen?
- Welche Helm-Releases sind installiert?
Beispielkommandos:
kubectl get all -n workshop
kubectl get configmap,secret,pvc,ingress,networkpolicy -n workshop
helm list -n workshop
kubectl delete namespace workshop
Anhang D: Abschluss-Review-Fragen
- Welche Ressource war der autoritative gewünschte Zustand?
- Welche Controller waren beteiligt?
- Welche Conditions oder Events waren für die Diagnose relevant?
- Welche Änderung war riskant?
- Wie hättest du die Änderung vorab validieren können?
- Wie wurde der Erfolg gemessen?
- Wie wird die Lösung zurückgebaut?
- Welche Security-Annahme ist noch offen?
- Welche Betriebsaufgabe muss automatisiert werden?
- Welche Dokumentation fehlt für den produktiven Betrieb?