CKAD: Why and how to master it

CKAD: Why and how to master it

In early May 2024 I finally found the time to do the Certified Kubernetes Application Developer (CKAD) exam. The CKAD is offered by the Linux Foundation. It consists of a performance-based, proctored exam, and at the time I did this it had access to an exam simulator. More about this later.

Why did I do it?

When I switched tech stacks in 2020, the company I joined asked for Kubernetes experience. While I was quite busy learning Java and the SpringBoot ecosystem together with Angular and brushing up my web-frontend skills, I did find myself in the position to suddenly perform Kubernetes deployments and write helm charts. I did get a good training while being on the job. It helped me to be a bit familiar with docker and bare metal deployments. But this was a whole new universe for me. Now, four years and a lot of experience and learning, later I decided I wanted to have something verifiable to certify my skills. As with the Spring Professional Developer certificate I obtained last year, having a piece of paper was only part of the motivation. The other part was to finally get a structured understanding of topics a developer should know about Kubernetes and close some gaps in my knowledge as well.

Previous experience

As I said, I first came into contact with Kubernetes around 2020 when I was switching jobs and tech stack. In preparation for the interview, I had installed a small Kubernetes cluster in some VMs on my Linux system. Just to toy around. Turned out, I did not need it for the interview. But it gave me a head start when being set on a project where we needed deployments for different stages to develop and test the application we were creating. I then dabbled around with a bit of helm charts and for about two years did not learn much more as I was actively developing in the project, and I needed to dive into other topics. After this I was set onto a different project, again as an application developer. But somehow, I also was doing a bit of more DevOps related tasks, not setting up a cluster or designing the helm charts but more reviewing them and learning about different things I was stumbled upon. This included resource limits, stateful sets, pvcs and tooling like k9s, lens and generally kubectl.

Preparation

I want to split this in two parts. There is preparation that helped but was not targeted at the exam and preparation which was very much targeted.

Not targeted preparation for sure was working with Kubernetes and trying to do related tasks at work. Another part which helped a lot in preparation was to learn more about containerization and Kubernetes in general. I did read The Book of Kubernets by Alan Hohn. This book includes labs and a lot of background information helping to understand Kubernetes a lot. I did enjoy it very much.

When I set a date to do the exam, I switched over to a more targeted preparation. I did take an Udemy course which included labs and as vi proficiency is needed for the exam I used vi wherever possible. I even install the IdeaVim plugin into my IntelliJ IDE. This was one of the best and worst decisions I made. I did gain a lot of proficiencies for shortcuts. But at the same time I’m now hooked up to them, and it always takes a moment when using someone else’s IDE or another editor to switch. Be careful, it is addictive.

Last Minute Preparation aka Simulator Time

Another great help when taking the exam is the simulator included with the voucher. You will get access to a simulator provided by killer.sh. The access is valid for 36h. Two days before the exam, I did take a training exam offered by KodeKloud which is included in the Udemy course. This was a breeze. One day before the exam, I did use the simulator which comes with the exam. This was not as calming as I had hoped for.

First of all, the simulator is harder than the exam. They say so themselves. However, the user experience was very exam like. You get a remote desktop where you can open a shell and also use an included browser to read the official Kubernetes documentation. I started by setting an alarm for in two hours and worked on the questions. I had answered maybe two-thirds of the questions when the two hours were done. I received a “mid score” rating. What a bummer. I did not even finish all the questions in the given exam time! This sent me into a mild panic. Then I realized a couple of things

  • the exam voucher comes with one re-take, so even if I fail, I can simply re-take it
  • I still can answer the other questions in the simulator
  • I can check my answers with the provided solutions and learn from my mistakes

After answering the rest of the questions, I had a “high score” rating. After comparing the solutions with my answers, I realized my old enemy aka typos was my worst problem. That relaxed me a lot and made me copy & paste a lot in the exam. Oh, and in the end, they offer some pretty nice tips for aliases to set in the shell you are using. Try to remember them!

The exam

The exam itself is proctored. You will be monitored via video and audio all the time. And you need to show your desk and room before the exam. I planned 30 minutes for this. Turned out this was enough but not too much. First, the exam client told me it was not working with Wayland. Interestingly, all pre-checks were green. Okay, log-out, start a X-Session and try again. From there on it worked like a charm. Well, the software did. When the Proctor asked me to show the room and places on my desk with my webcam my cable management got into my way and I janked the webcam cable from the USB-Hub below my desk. This gave me a short shock and sent me searching for scissors to free up more cable. In the meantime, I got kicked out of the client. But I was able to resume without any issues. A big plus one for the client from my side.

Right on time, the exam starts. You have the possibility to mark questions, so you can go back to them later. If you are stuck, do this. The questions are isolated from each other. First thing, I set up some aliases like k for kubectl or kdo for kubectl $1 --dry-run=CLIENT -o yaml to spare myself some typing. And there I go. Up to question three. This was a bit more complex. I read it like thrice and mumbled a bit. And BANG. A big warning pops up “You are not allowed to talk during the exam. You have been warned.” This shocked me a bit. I was not talking, only mumbling. But it was only a warning, so I chatted “Sorry, was thinking aloud” and made a note to reduce the microphone sensitivity the next time I take an exam like this. Back to the exam, marking this question to come back later, happily hacking on. Right after I answered the last question, the timer ticking down turns yellow and states “only 30 min remaining”. Nice, all questions answered, three marked as skipped/re-check. With something like 15 minutes left, I had revisited all questions, wrote thank you to my proctor and ended the exam.

Now the worst time began. I had to wait for the exam results. They took nearly 24h to arrive. But I passed, with like 95 of 100 points. Sadly, there is no way to check what I was missing or answered incorrectly.

Was it worth the time and money?

The exam costs $395. This is in the range I would pay privately. Thankfully, my employer QualityMinds paid for it as part of permanent education and professional development. With access to the simulator, getting one re-take and keeping in mind this is a performance-based and proctored exam, in my opinion, it comes at a fair price.

When it comes to the time invest and the return of investment, I tend to say it was worth it. Especially, the preparation with the Udemy course helped a lot. I learned some new things and got deeper insights into other parts.

Also, doing a performance-based exam and not a multiple choice one was quite fun. It felt rewarding to not only be tested for knowledge but also for using it. And last but not least, it made me much more confident in knowing what I’m doing and gauging my skills better.

Tips

If you are reading this and plan to do the CKAD exam, here are my tips:

  • learn to use a shell (in the exam you will use a bash)
  • learn to use vi
  • gather some practical experience as this will help you with “something is broken, fix it” questions
  • take this Udemy course as it contains labs and covers most if not all the topics
  • use the simulator maybe not on the day before the exam but a bit earlier
  • read The Book of Kubernets if you are interested in more technical things and want to get a better grasp on the underlying concepts
  • untangle you webcam cable ;)
  • do not set your microphone on supersensitive ;)