How I Received 92% for CKAD Exam - Tips & Tricks

Hong Chun
7 min readDec 6, 2020

Background

It’s been a while since I took my last certification exam back in November 2019. After close to a year of working with Kubernetes, I’ve decided to give Certified Kubernetes Application Developer (CKAD) exam a try.

36 hours after my exam, I received the email below and I’m relieved!

The long awaiting email!

To my surprise, I received a 92 out of 100 scores for the certification exam despite me not having enough time to finish the last 2 questions (I think it’s worth 8 scores).

I would like to share resources that I used to achieve that, the approach and some tips & tricks.

Learn from an Online Course

If there’s one preparation for you to get yourself ready for the examination, this is one of them. It’s great that you could learn Kubernetes 101 from youtube or other websites. However, I did recommend learning from an online course even if you’re just trying to learn Kubernetes and skipping the certification exam. Why? Here are the reasons:

  • They’re well structured and properly organized so, you will be learning Kubernetes step by step
  • Most of them usually come with Practice Exam / Lab that you can practice with
CKAD Course on acloudguru.com

There are a few online training websites that provided CKAD’s course. E.g.: udemy.com, acloudguru.com, cloudacademy.com. One that I used was acloudguru.com since my company had a subscription with them — https://acloudguru.com/course/certified-kubernetes-application-developer-ckad

Try it out Yourself

1. Play with it

Now you have the theoretical knowledge on Kubernetes, make sure you spend time to understand and work with it on a simple application just to get a better understanding of how it actually works in an actual environment.

There are a few options out there that you could easily create a Kubernetes cluster:

Once you have the Kubernetes cluster setup, try to deploy an application that makes use of different combinations of Kubernetes’ resources. E.g.: Pod, Deployment, Configmap, Secret, etc.

If your company uses Kubernetes, that’s a huge plus at your end as you get to hands-on experience it on actual applications and solving real-world challenges. I myself am fortunate to have that opportunity to learn it that way.

2. Practice enough

Make sure you practice enough, I did most of them at least twice. Here are some of the resources I used to practice:

Ensure you’re familiar with the “kubectl” command on how to create, edit and delete Kubernetes resources.

3. Fluentd and Nginx — what are those?

You might come across some of the tools that are non Kubernetes related. For example, the practice exam might ask you to configure a reverse proxy with Nginx.

Don't worry if you don’t understand it: Instruction and configurations will be provided and you’re not expected to know about it in detail as it was out CKAD exam’s scope.

Here’s are the scope of CKAD exam (https://training.linuxfoundation.org/certification/certified-kubernetes-application-developer-ckad/):

Core Concepts 13%
Configuration 18%
Multi-Container Pods 10%
Observability 18%
Pod Design 20%
Services & Networking 13%
State Persistence 8%

Learn These Time Savings Tricks

The certification has a very tight timing, you need to answer 19 questions in 2 hours which means you have an average of 6 minutes to read, think and answer each question.

1. Use command alias

This should be the first thing you should set up your environment when you attend the certification exam.

# Setup alias
alias k='kubectl'
# So you can do this
k get pod
# Instead of doing this
kubectl get pod

2. Generate Kubernetes resource with the command and use it as your starting point

So you don’t need to look at the documentation to find the correct formatting, it will definitely save a lot of time.

# Generate Pod's template
kubectl run myapp --image=busybox --restart=Never --dry-run=client -o yaml > myapp-pod.yml
# Generate Deployment's template
kubectl create deployment myapp --image=busybox --dry-run -o yaml > myapp-deployment.yml

3. Name your file appropriately

I generally name my YAML with the format “<Question No.>-<Type>.yml” so that it will be easy to find when I revisit later.

q1-pod.yml
q2-cm.yml
q2-deploy.yml
q3-pv.yml
q3-pvc.yml

4. Use the build-in “kubectl” documentation

This would be handy when you need to know what are some available properties for the resource.

# Check for available properties within "pod.spec"
kubectl explain pod.spec
# See what's properties available for Pod's readinessProbe
kubectl explain pod.spec.containers.readinessProbe

You will see something like this:

You can also check the available “kubectl” command with:

kubectl create -h
kubectl get -h

5. Familiarize yourself with https://kubernetes.io/docs documentation

During the exam, you’re allowed to open 1 additional tab to look at https://kubernetes.io/docs documentation. Make sure you familiarize yourself with it prior to the exam, you shouldn’t be seeing it the first time in your exam.

Use the search tool with keywords and know which one you’re looking for

Familiarize yourself with what’s on the page and know which one you should click on during the exam.

“Copy & Paste” is your best friend

In our example, if you want to look at the Pod template you can just find it with “kind: Pod” instead of having to scroll through all of it.

6. If you did like, you can also bookmark the most commonly used page

This is how my bookmark looks like when I prepare for the exam. I was allowed to open the pages from my bookmark as long as they’re allowed websites and within the same 1 additional tab.

Now Time for the Exam! What Else?!

1. Make sure you’re in the correct cluster context

Each question is provided with cluster context information on which Kubernetes cluster you should be working on. Don’t worry, as the cluster context information will be provided on top of each question and you just have to copy-paste and execute it.

2. Don’t get stuck and move on

If you ever find yourself spending quite a lot of time on 1 question, don’t be afraid to skip the question for now and re-visit later. There’s a time where simple questions actually worth so much more score than the hard one, that’s a better use of your time.

To prevent me from getting stuck and wanted to keep solving the same question, I build a workflow for myself:

The workflow that running on my mind during the exam

You’re also provided with an in-browser notepad to write any note during the exam, I would recommend writing down each question’s status and score weightage so that you get a clear overview of where you stand:

q1 - 10% - done
q2 - 2% - TO DO
q3 - 8% - done
q4 - 9% - TO CHECK
q5 - 5% - done
...

I find this pretty handy especially in the last 5–10 minutes when you have time pressure and needed to make an immediate decision.

3. Double-check the answer

If you have time, make sure you spend time double-checking your answers and don’t end the exam early. Unfortunately, I don’t have time to do this. Make sure your Kubernetes resources are created in the correct “namespace”, “cluster” and even “node”.

4. Lastly, don’t be stress and be calm

I can understand how the time pressure can make you stress and underperform during the exam, just take a deep breath and keep solving problems. Emotionally stable enable you to make a better decision to solve the problem.

Summary

Now that you’re well prepared, I wish you good luck!

You will most likely receive your exam result after 36 hours, at least that’s how long mine took. If you failed, don’t worry and treat it as a practice. CKAD allows 1 free exam retake within a year and you will be well prepared the next time!

These are just some of the approaches that worked well for me, you might have different preferences and if you’d like to share them, I’m more than happy to know it. :)

--

--

Hong Chun

Software Engineer, Documenting my Engineering Journey