Passing Certified Kubernetes Application Developer (CKAD)

I have been planning to appear for Certified Kubernetes Application Developer (CKAD) certification for quite some time now. I was on and off with my preparation but since it was about to expire this month, I appeared for it this week and passed it successfully. In this blog post I will share my journey which I think will be helpful for you to achieve this certification.


Basics

To be honest if your Kubernetes basics are sorted out you will find it easy to clear the certification. In order to get a solid foundation on Kubernetes, go through Kubernetes documentation. Kubernetes documentation is great. When I was new to Kubernetes few years back, I went through almost all the concepts and tasks they have in their documentation and that has helped a lot, not just to clear the certification but also to gain much better understanding of the entire features that Kubernetes has to offer.


If you learn by watching video tutorials, then you can buy Mumshad Mannambeth's course on Udemy. For me, I watched Janakiram MSV's Kubernetes Webinar Series when I was getting started with Kuberentes, it's little old but I think they are still relevant and can set you in the right direction in order to get a solid Kubernetes foundations.


Apart from Kubernetes basics, YAML and Docker basics are also something that you require.


Certification Preparation

Once your basics are clear and you have a solid foundational knowledge of Kubernetes. You can move forward to prepare for your CKAD certification. I used Mumshad Mannambeth's CKAD course. It is great and covers everything in detail. The best part, you get access to hands-on lab along with the course which I found to be super helpful for practising all the exam topics and get your hands dirty which is definitely required in order to pass this certification.


Below are the topics that I think you should be super comfortable with:

  1. Pods

  2. Deployments

  3. Services

  4. Network Policies

  5. Persistent Volumes, Claims, and Storage Classes

  6. Jobs and Cron Jobs

  7. Config Maps

  8. Secrets

  9. Requests and Limits

  10. Readiness and Liveness Probes

  11. Labels and Selectors

  12. Monitoring, Logging and Troubleshooting

Apart from this you might also have to get the basics of Helm right because it got added into the list of topics starting October this year. Basically, you should be comfortable with helm commands like install, uninstall, search, upgrade etc..


Also, be sure to brush up your Docker basics on how to build an image using Dockerfile, tag it, push it to a repository. This is also a new topic that got added recently to the overall list of topics.


Last but not the least, I found killer.sh to be super helpful. This is what gave me the real look and feel of the examination. You will get two sessions to practice and the questions will be exactly similar in both the sessions. The idea is to solve all the 22 questions in least amount of time so that you can be comfortable in the examination and it's 2 hour time window.


Before appearing for the exam you should have enough practice of the above mentioned topics so that in the exam you know what needs to be done and if you are struggling in any question then you should know your way around the Kubernetes documentation and troubleshoot the error that you might be getting.


5 most important tips to clear certification:

  1. Whenever you asked to create a Pod or a Deployment, use --dry-run=client -o yaml. This will save you a lot of time. You can also export it in a variable like, $dr="--dry-run=client -o yaml". So, that whenever you get a question like that, you can simply run kubectl run nginx-pod --image=nginx:alpine $dr > nginx-pod.yaml rather than typing dry run flag each and every time.

  2. Make sure that you are in the right context and deploying in the right namespace. Each question will ask you to perform some actions in specific context and namespace. Be sure to be in the right context. If you solve a question that is intended for some other context or namespace then you are not going to get any score for it.

  3. When deleting any Pod, make sure that you don't wait for the entire 30 seconds. Use --force --grace-period 0 which will terminate the Pod instantly. This will also save you a lot of time in the exam.

  4. Be very comfortable with using imperative commands like kubectl create/run, kubectl expose, kubectl label, kubectl annotate, kubectl rollout.

  5. Last but not the least, know your vi shortcuts and effectively use vi. For example:- jumping to a particular line, deleting a line, copying/pasting a line etc..

Before the exam be sure to read the Handbook carefully and follow the instructions in order to setup your desk area accordingly and get ready for the exam.


Here's my certification:


Feel free to reach out to me in case you are planning to appear for the exam or if you need any help around Kubernetes in general and I will be glad to be of any help. Cheers!