
🌐 Auch auf: English · Français · Español
Der Hauptgrund ist einfach: Ich will meine Kubernetes-Kenntnisse ernsthaft ausbauen und über „Ich kann Zeug ausrollen“ hinauskommen –
hin zu echtem Verständnis dafür, was unter der Haube passiert.
Kubernetes gehört zu den Technologien, mit denen man schnell etwas zum Laufen bringt – wirklich beherrschen wird man sie aber nur mit Struktur,
Wiederholung und praktischer Übung unter Zeitdruck. Genau das prüft die CKAD.
🧠 Mein Ziel: vom Kubernetes-Nutzer zum Kubernetes-Operator
Hinter der CKAD-Vorbereitung steckt nicht bloß Zertifikatesammeln. Es geht darum, echte Sicherheit im Betrieb aufzubauen, und zwar bei:
- Workloads (Pods, Deployments, Jobs, CronJobs)
- Konfiguration (ConfigMaps, Secrets)
- Netzwerk (Services, Ingress)
- Storage (PVCs, StorageClasses)
Mein Ziel ist simpel: Ich will mir ein Kubernetes-Problem ansehen und sofort wissen, welches minimale YAML es löst.
📚 Wie ich mich auf die CKAD vorbereite
Zur Vorbereitung nutze ich KodeKloud als wichtigste Lernplattform.
Mein Schwerpunkt liegt dabei klar auf den CKAD Mock Exams.
Diese Probeprüfungen sind enorm wertvoll, weil sie die echte Prüfungsumgebung simulieren:
- Zeitdruck (das ist die eigentliche Herausforderung)
- Aufgabenbasierte Kubernetes-Probleme
- YAML selbst schreiben und bearbeiten
- Workflows mit viel kubectl (kein Theorie-Geschwafel)
Es geht nicht nur darum, „Kubernetes zu lernen“, sondern ein Muskelgedächtnis aufzubauen, um Aufgaben schnell und korrekt zu lösen.
⚡ Was die CKAD wirklich prüft
Bei der CKAD geht es nicht ums Auswendiglernen von YAML. Es geht darum, es unter Zeitdruck zu erzeugen, anzupassen und zu vereinfachen.
Belohnt wird nicht perfektes YAML – belohnt werden funktionierende Lösungen, schnell geliefert.
Der Ablauf wird fast schon mechanisch:
kubectl create deployment myapp --image=nginx --dry-run=client -o yaml
vim myapp.yaml
kubectl apply -f myapp.yaml
Erzeugen → Kürzen → Ausrollen → Wiederholen.
📚 Die Kubernetes-Doku richtig nutzen
Die Kubernetes-Dokumentation ist in der Prüfung erlaubt – und sie ist entscheidend.
Die eigentliche Kunst ist aber nicht, sie zu lesen. Die eigentliche Kunst ist:
- schnell das passende Beispiel finden
- überflüssige Felder ignorieren
- YAML auf das absolute Minimum eindampfen
Die meisten offiziellen Beispiele sind absichtlich ausführlich. In der CKAD gilt:
Ausführlichkeit ist dein Feind.
⚡ kubectl ist der eigentliche Cheat-Code
Am schnellsten legst du Ressourcen nicht an, indem du YAML schreibst – sondern indem du es erzeugen lässt:
kubectl create deployment myapp --image=nginx --dry-run=client -o yaml
kubectl create job myjob --image=busybox --dry-run=client -o yaml
kubectl create cronjob mycron --image=busybox --schedule="*/5 * * * *" --dry-run=client -o yaml
Damit fällt der Syntax-Ballast weg, und du kannst dich aufs Lösen des Problems konzentrieren.
🧠 kubectl explain: deine eingebaute Doku
kubectl explain pod.spec.containers
kubectl explain deployment.spec.template.spec
Das ist dein Rettungsanker, wenn das Hirn einfriert.
📚 Minimal-YAML-Spickzettel (die eigentliche Prüfungswaffe)
Das minimale funktionierende YAML für jede Ressource zu kennen, ist einer der größten Vorteile in der CKAD.
🚀 Pod
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: c1
image: nginx
Oft gebraucht: ports, env, volumeMounts
🚀 Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: mydeploy
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: c1
image: nginx
Oft gebraucht: replicas, resources, probes
🚀 Service
apiVersion: v1
kind: Service
metadata:
name: mysvc
spec:
selector:
app: myapp
ports:
- port: 80
targetPort: 80
Oft gebraucht: type: NodePort / ClusterIP
🚀 ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: myconfig
data:
key: value
🚀 Secret
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: cGFzcw==
🚀 Job
apiVersion: batch/v1
kind: Job
metadata:
name: myjob
spec:
template:
spec:
containers:
- name: c1
image: busybox
command: ["sh", "-c", "echo hello"]
restartPolicy: OnFailure
🚀 CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
name: mycron
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: c1
image: busybox
command: ["sh", "-c", "echo hello"]
restartPolicy: OnFailure
🚀 PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
🚀 CKAD-Überlebenshandbuch: kubectl-Spickzettel
Schreib kein YAML. Lass es erzeugen.
⚙️ Grundlegender Workflow
kubectl create/run ... --dry-run=client -o yaml > resource.yaml
vim resource.yaml
kubectl apply -f resource.yaml
⚡ Die wichtigsten Generatoren
kubectl run mypod --image=nginx --dry-run=client -o yaml
kubectl create deployment mydeploy --image=nginx --dry-run=client -o yaml
kubectl create job myjob --image=busybox --dry-run=client -o yaml
kubectl create cronjob mycron --image=busybox --schedule="*/5 * * * *" --dry-run=client -o yaml
🔍 Debugging
kubectl get pods
kubectl describe pod mypod
kubectl logs mypod
kubectl exec -it mypod -- sh
⚡ Tempo-Tricks
alias k=kubectl
kubectl get pod mypod -o yaml
kubectl edit deployment mydeploy
🔥 Fazit
- Minimales YAML gewinnt
- Nutze die Generatoren von kubectl
- Denk in Workflows, nicht in Syntax
Die CKAD ist kein Wissenstest – sie ist ein Tempo- und Umsetzungstest.
Wenn du das richtig trainierst, ist das Bestehen der Prüfung nur noch ein Nebeneffekt.
Happy Hacking 🧠⚡




