How I passed my CKAD exam
I recently passed the Certified Kubernetes Application Developer (CKAD) exam with an 88% score. I started my preparation a month ago by practicing running k8s commands locally on minikube. Although I was familiar with basic concepts like pods, clusters, deployments, etc., I was not comfortable creating the yaml
file from scratch. Hence, I had to practice a lot and develop that muscle memory.
Not enough time…
I’m sure by now you may have heard that 2 hours is a short period of time to solve 19 questions. The questions are also not straight forward, but if you have a good understanding of concepts, you can ace the exam. Practice and more practice is the key here and grit as Angela Lee Duckworth explains.
Exam Tips
- Imperative commands: Instead of creating a YAML file from scratch for each object, you can use imperative commands. This will save you a lot of time. I made a list of important commands while practicing which was helpful for me.
- Dry Run: In case there is additional information that needs to be added for the creation of a k8s object, dry run it first. For example, if you are creating a pod with a liveness probe, do this first:
kubectl run demo-pod --image=nginx --restart=Never -n default --dry-run=client -o yaml > pod.yaml
, then edit thepod.yaml
file to add the liveness probe. - Alias: I used aliases for frequently used commands. It saved me a few minutes and some typos(as I make them a lot 😉). Some of the aliases I used were:
alias k='kubectl'To set a namespace
alias ksc='kubectl config set-context --current --namespace'Get current namespace
alias kgc='kubectl describe pod | grep -i namespace -m 1'Describe k8s object
alias kd='kubectl describe'Create an object
alias kc='kubectl create -f'Dry run
export dr="--dry-run=client -o yaml"
- Shortcuts: I used shortcuts wherever possible, so instead of typing
kubectl get persistentvolumes
, I usedk get pv.
You can find more shortcuts by runningkubectl api-resources
. - Vim: For the main exam you’re only given a terminal without any IDE, so you have to be really good with vim for copy, cut, paste, setting line numbers, diff, etc.
- Yaml: You need to know YAML really well. If you mess up the indentation, formatting it can be painful on vim and will cost some major time.
Resources I found helpful
- Kubernetes official documentation.
- Kubernetes Certified Application Developer (CKAD) course on udemy.
- CKAD exercises
- CKAD practice questions