How I passed my CKAD exam

Photo by Guillaume Bolduc on Unsplash

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 the pod.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 used k get pv. You can find more shortcuts by running kubectl 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

  1. Kubernetes official documentation.
  2. Kubernetes Certified Application Developer (CKAD) course on udemy.
  3. CKAD exercises
  4. CKAD practice questions

--

--

San Francisco-based Software Engineer and Solution Architect who loves learning new technologies and solving interesting problems.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Amarpreet Singh

San Francisco-based Software Engineer and Solution Architect who loves learning new technologies and solving interesting problems.