A 2019 guide to passing the CKA Exam
One of the goals I had for this year was to pass the Certified Kubernetes Administrator (CKA) exam, which I have successfully achieved from the first attempt early August 2019 scoring 84%.
I’ve been using Kubernetes over the past year throughout the different projects I’ve worked on. This has definitely gave me some extra confidence to sit the exam alongside the 3 weeks of preparation prior to that.
Why get certified
The demand for skills in Kubernetes has increased as containerisation has become the norm for application deployment and is becoming more popular by the day.
So the way I see it is that certification would demonstrate the commitment to learn and adapt as the technology changes rapidly. Its also a way help you validate your knowledge and competency to perform Kubernetes administrators tasks.
The exam is an online proctored exam and you would have 3 hours to complete 24 questions. Unlike other certifications, the CKA exam is not a multiple choice exam but rather a series of questions where you would need to solve scenario based topics, troubleshoot resources, create manifests and configure clusters that are provided to you in the exam lab environment.
Finding a place to sit the exam can be tricky as the exam session will be proctored via streaming audio, video, and screensharing feeds. The proctor will ask to see some identification before the exam and will also ask you to show the room you are in including the desk. You will need to make sure that the room is well lit, quiet and there is no one else with you in the room, the desk has to be clear and has nothing on it such as notes, books, pictures, etc. If you wear a smartwatch you will also be asked to remove it.
During the exam you can have only 1 tab open on the Kubernetes documentation, blog or github repository and their subdomains. Get familiar with the documentation specifically as it will be really useful during the exam.
For more detailed information about the exam and its curriculum you can have a look at the CNCF official website. The Candidate Handbook (found on the CNCF website as well) covers all the points I mentioned above in more details.
How did I prepare
As I mentioned earlier, I did have some prior experience with Kubernetes which would have made the preparation slightly easier for myself as I was already familiar with many of the covered topics. Over the 3 weeks of preparation, I would say that I spent an average of 2 hours per day going through the material mentioned below. I would spend around an hour going through the theory during my commute, then I would run through some lab exercises at home.
Below is the preparation list I went through for the exam:
LinuxAcademy - Cloud Native Certified Kubernetes Administrator (CKA) Course found here. In my opinion this is a must-do and it was the first step in my preparation. The course covers the CKA Curriculum and its around 16hours long but you an always listen to it at a 1.5x speed.
LinuxAcademy Labs. The best way to learn would be through hands-on experience and that’s what these labs provide.
The CKA course mentioned above has labs after every section covering what has been learned in theory.
LinuxAcademy - Learn Kubernetes by Doing is another course that consists of labs only and can be found here
QWIKLabs also has a few hands on labs. They might not be directly related to the CKA exam but they are still useful in terms of going through some more advanced scenarios.
There is a github repository that I came across and found very useful as it provides a lot of practice exercises along with their answers. Even though the repository is meant for the CKAD exam it still gives you some tips and tricks using the kubectl command line. The repository can be found here.
The last resource that I went through during my preparation was a tutorial by Kelsey Hightower called Kubernetes-the-hard-way. This tutorial will teach you how to bootstrap Kubernetes manually using VMs on GCP. You will spin up the VMs, generate all the certificates, bootstrap the control plane and workers, configure kubectl and eventually end up with a fully functional cluster.
These are some of the tips I picked up during my preparation and after finishing the exam that I would like to share with you.
You don’t need to write manifests from scratch as you can find example templates on the websites you’re allowed to access during the exam or you can generate manifests as follows:
kubectl create deployment nginx --image=nginx --dry-run -o yaml > nginx-deployment.yaml
kubectl run nginx --image=nginx --restart=Never --dry-run -o yaml > nginx-pod.yaml
These commands would create the manifest boilerplate where you can just add whatever you need to it. Doing this would save you a lot of time as every file is edited with vim/nano.
Setup aliases at the beginning of the exam to speed things up. You can also setup autocomplete and the way to do that can be found on the Kubernetes Cheat Sheet which you can access once the exam starts as well.
The exam doesn’t have a flag feature for going back to specific questions for review and it doesn’t mark the completed questions either. A workaround would be to use the provided notepad within your tab to keep track of the questions you need to go back to and the estimated accumulated mark (the passing mark as of writing this post is 74%). This will help you with time management as you can easily lose track of time during the exam.
Using Kubectl explain is useful to get documentation of any resources and display it in your terminal. You can use that command to find out all the fields that apply to a specific resource and would help you when you need to edit any manifests. I found this command quite helpful if when adding extra properties to the manifest. An example of the command and its output looks like this.
kubectl explain pod.spec
During the exam you will need to change between different clusters so make sure that you have set the correct context before going through the question.
If you SSH into any nodes and assume elevated privileges make sure you exit twice before after attempting a question as its easy to miss an exit command.
Overall I would say the exam is of an intermediate difficulty and proper time management is critical in getting all the questions done in time. You get 7.5 minutes for every question and the questions get harder as you progress through the exam. Every question tells you exactly how much its worth so if the question is worth 1% it might be not be worth spending the full 7.5 minutes on it.
There are many resources out there that can help you with your preparation and I’ve only listed the one’s I’ve personally used. Try not to stress out too much during the exam as you do get a free retry anyway (which hopefully you won’t require) and this would be a good chance to see which areas you need to improve on if you don’t clear the exam in the first attempt.