I started my journey with Kubernetes in September last year when I joined a team building software specifically for it. At that time I had no experience with the platform. In order to make myself familiar and productive I decided to set a goal to attempt Certified Kubernetes Application Developer exam before the year ended. The exam itself is a set of very practical tasks that need to be completed in a simulated environment. Since I wanted to gain practical knowledge this sounded like a great idea. In December 2020 I attempted CKAD exam, which I passed with a mark of 97%. In this post I want to share my experience. I hope it helps some of you prepare for your own attempt.
There is no running away from the fact that the exam is very hnds on so you need to practice as much as possible!!
Before I started preparation I had a look at the official CKAD Curriculum . The high level topics covered in the exam are:
- Core Concept (Kubernetes primitives)
- Multi-container pods
- Pod Design
- Services & Networking
For brevity I won’t write about acquiring the basic knowledge. I feel that any course from Udemy/Pluralsight or any tutorial online will give you enough knowledge to get started.
My personal learning programme was based on those three resources exclusively:
This is a brilliant repo. It contains a series of exercises with answers. They cover each part of the required knowledge for the exam. The questions you will find are very very similar to the ones you will get on the exam!
This has a series of fun challenges. Each challenge requires you to perform a series of tasks.
The official documentation is brilliant and you can use it during the exam!
Since the exam is practical I decided to mainly learn by practice. I would go through each exercise from the repos above and try to solve it. When I got stuck I used the official documentation and the
kubectl explain to help me. I would also spend some time digging into concepts that are new to me or I do not fully understand in the questions encountered.
Both sources of exercises I mentioned above come with answers. It is important to attempt to solve the problem without looking at the answers to help you learn. I did get stuck in the exam itself but my learnt habit kicked in and I was able to progress quickly just with
kubectl explain without loosing precious time.
It was very important to me to be able to solve almost all the exercises without needing to look at the documentation. In order to achieve that I went through the exercises mentioned above about 3 times. It was well worth the effort.
At the exam you are given 2 hours to answer 19 questions. The exam takes place online. You will be given information about the platform when you register. Before the exam is started you will need to verify you identify and show your surroundings to the proctor. You will interact with the proctor via a chat window. The initial steps took me about 20 minutes because my ID was not properly visible through the webcam. You might want to make sure that your ID/Passport is viewable through the webcam without too much glare. The proctor has to be able to see it properly. Another point is your surroundings. You will need to show all of your surroundings (that includes under the desk, behind the screen, walls etc.). The proctor will guide you what to show and when. I was lucky here since I havean external webcam with long cable. The proctor will be with you throughout the exam. You will be required to share your screens so they can see what is happening. You will also need to be visible in the webcam at all times. The proctor will share the rules with you before the exam is started. If the proctor is satisfied with your ID, your surroundings and all the setup went smoothly they will release your exam. The clock starts ticking at this point.
The exam window will be divided into two parts:
- the question on the left
- the terminal on the right
The first thing you should do is to alias
k and enable autocompletion so you can save time on typing. You really need to be fast!
Take time to read the question and understand what you are asked to do. Each question will tell you which cluster and namespace to use. Switching to the right context must be the first thing you do. The exam is marked based on the results so if you are in the wrong place you will not get points.
The proctor will let you know how much time you have left at different points during the exam. Once you are done answering questions you can request the exam to end.
There is a possibility to request a bathroom break but this does not stop the time so you might want to avoid it!
Getting the result
Your results are going to be emailed to you. The official guideline states that this should happen within 36h. My results came after 35h so the guidelines are not wrong. It is a long time to wait so try to relax and not think about it (easier said than done).
$ alias k=kubectl
Enable kubectl autocompletion
$ source <(kubectl completion bash)
kubectl explainto see documentation
$ kubeclt explain Pod.spec.volumes
You are allowed to access the official documentation at https://kubernetes.io/docs.
You might want to prepare some bookmarks with topics you are struggling with. Remember you are only allowed one other tab open!
Do not write YAML from scratch, use
--dry-run=clientto generate it instead e.g.
$ k run pod nginx --image nginx --dry-run=client -o yaml
- CKAD Curriculum
- dgkanatsios CKAD-exercises
- Kubernetes CKAD Example Exam Questions Practical Challenge Series by Kim Wuestkamp
- Kubernetes Documentation
My main advice to anyone attempting to pass CKAD is: practice, practice, practice! As mentioned multiple time the exam is practical so any time you spend solving puzzles will pay off in the exam. Good luck!