CKAD Exam Review
After taking and passing the Certified Kubernetes Administrator (CKA) exam a couple of weeks ago I decided to go for the Certified Kubernetes Application Developer (CKAD exam. Last week I sat that exam and (to my surprise) I passed with a perfect score of 100%.
Preparations and Resources
I have already done quite a few blog posts with study material in my preparations for this exam so this post won't cover any specifics on the Objectives themselves. A lot of the study material is the same for preparations against the CKA exam.
The information given by the Cloud Native Computing Foundation (CNCF) and the Linux Foundation (LF) is very good and is something that you should familiarise yourself with.
The Certificate Handbook lists some general information about certifications by the Linux Foundation, e.g. how to register, payment, refund policy etc. All of this is pretty standard, the price is currently 300 USD and there's (currently) one free retake on exams.
The exam is done online with your own equipment. Review the requirements before starting the exam to be sure that the exam can be delivered without issues.
There's also a compatibility check tool available. The essentials of this is that you need a reliable internet connection, a current version of a Chromium browser, a Microphone and a webcam. Internal laptop mic and webcam is fine.
As the exam is delivered online you need to be sure that the room you're sitting in meets the Testing environment requirements.
You will have to pane your room with your webcam so that the online proctor can verify. Make sure that there's no clutter in your reach and in the room you're sitting in. There should be no paper or writing implements, no other devices besides your computer in reach. The walls in the room should be clear, paintings will probably be fine, but no print-outs, bookshelves with books etc.
I have seen a few questions on a dual or extra monitor setup, and to me it seems to be varying a bit what the remote proctors allow. Some have had to physically disconnect extra monitors and show that the cable has been unplugged, others have been allowed to use the extra monitor so long the desktop on it can be shared through the exam delivery software. You are either way allowed only two browser tabs open, the folks allowed to use an extra monitor had one browser window with one tab on each screen.
The requirements specifies that there should be no bright ligts or windows behind the candidate. The point here is that the proctor needs to be able to see your face and hands without issues. I had a window behind me, but with the curtains closed and that was fine.
You need to be sure to be alone in the room at all times, and that there's no noise.
Curriculum and training
I have covered the curriculum and linked to my study notes for the same on this page so I won't go in to details about this. I will however stress that the exam is performance-based, i.e. you will solve tasks in a live environment so be sure to train for that.
Create your own Kubernetes cluster either on VMs in your homelab, run a cluster on a Cloud provider, or in your laptop with i.e. Kind or Minikube. You will need a lab environment, and spend as much time in it that you can!
The CKAD exam is a performance-based exam with 15-20 tasks to be solved on the command line and you have two hours to complete it. You'll get an exam environment in a browser tab split in to a pane with the assignment and instructions, and a pane with a command line terminal running Linux.
The tasks have different weight, and the weight is mentioned in the instructions. As the tasks does not rely on each other and can be solved individually you are free to tackle the tasks with the highest weight first. The passing score is 66%, I scored a whopping 100% on my exam.
You'll have multiple Kubernetes clusters/environments to work with and each task must be completed in the specified cluster so there will be some configuration context switching. There will also be different namespaces in play so be sure to be aware of where to create and do stuff. This is clearly marked in each assignment, but might be easy to miss if you're stressed on time.
One additional browser tab are allowed and this tab can be used to access the Kubernetes documentation (note my mention on multiple monitors above). For a list of allowed assets refer to this page.
As with all certifications the CKAD comes with a NDA so we're not allowed to discuss details about the questions/assignments, but in general I will say that you need to be comfortable on the command line, and you need to know
kubectl well. Even though you have access to the documentation you are limited on time so if you need to look up every single task and command you'll soon be out of time.
The tasks ranges from "Start a pod with this specific image" to troubleshooting tasks where you need to find out why something is not running or working.
As for the tasks where you are to deploy something some of them might be solved with a simple
kubectl command, others needs to be done through a yaml file to meet all task requirements.
Examples with yaml syntax can often be found in the documentation, but it might be quicker to run a
kubectl <command> --dry-run=client -o yaml > <file-name> command if supported, and then adjust the yaml file before deploying it with
kubectl apply -f <file-name>. Knowing how to use this technique can be a real time-saver.
I don't think I got tasks covering all of the sub-objectives in the curriculum, but a great deal of them. And even if you're not tested directly on a sub-objective your understanding of it will probably help you on one or more tasks.
I believe the exam is scored automatically, but you'll not get the results before around 36 hours after the exam was completed.
There is lots of posts out there giving advice on how to set up the command line environment with aliases etc. I didn't do that, and frankly I don't think that the typing of
kubectl instead of e.g.
k costs that much more time. But, if you're used to using aliases then go ahead. The most important thing is to be comfortable in the command line environment!
CKAD vs CKA
Before starting my preparations against the CKA exam I had been thinking of doing the CKAD afterwards, but not this soon. When seeing some comments that the CKAD has quite some overlap with the CKA I decided to just go for it.
If you've done the CKA exam there's some similarity in the tasks, but I would say that the tasks in the CKAD exam are bigger and a bit more complex. You need to meet more requirements in each task, and it can consist of multiple steps needed to be taken. Stuff like Multi-container pods is more tested in this exam and you'll also see tasks around Jobs and CronJobs which is different from the CKA exam.
With more steps and stuff needed to be done I think the ability to be fluent with
kubectl is even more important in the CKAD exam since you are limited on time.
Even though I got a better score on the CKAD compared to the CKA exam I found the CKAD more challenging. I nearly ran out of time, whereas on the CKA exam I had time left.
This exam is a fair test which indeed test quite a few concepts around running applications on Kubernetes. With hands on experience performing such tasks in a Kubernetes cluster and with some extra prep you should be able to pass this exam.
My study notes will cover a lot of the knowledge needed, but probably not all. A few of them might also be outside of the curriculum, but for me the process of doing the CKAD exam was more of learning the technology than just passing the exam.
If you have any questions or comments, feel free to reach out