When it comes to certification I'm usually a bit skeptical. Achieving a certificate for the sake of getting a formal certification document should, in my opinion, never be your main intent. At the end of last year, I noticed that the Cloud Native Computing Foundation offered a discount for their Kubernetes bundle containing an online course and access to the certification exam. As we started to use Kubernetes for a project and as I wanted to learn more about the concepts and overall basics, I decided to buy it for 299 $. You can choose between CKAD (Certified Kubernetes Application Developer) and CKA (Certified Kubernetes Administrator) and I picked the first. With this blog post, I want to share my experiences about both the online training and the exam and give you are a review of the CKAD program.
In addition, you'll get my top 5 tips for passing this certification at the end of the post.
My preparation for the CKAD program
The bundle includes the Kubernetes for Developers (LFD 259) online training from the Linux Foundation. You get access for 12 months to 35 hours of online course material. During this training, you cover all major topics for Kubernetes including security, troubleshooting, build & design pods, architecture, and configuration.
Every chapter starts with a general explanation of the topic, followed by multiple hands-on work instructions. These tasks need a running Kubernetes cluster which you can either get as a service from the major cloud provider or create your own. There is an own chapter for creating your first Kubernetes cluster with a simple setup of two virtual machines, one master and one worker node. Even as I decided for the more developer focussed, it was a great experience to set up the cluster from scratch (with the help of shell scripts).
The work instructions offer a great way to learn and understand the Kubernetes concepts in detail. All examples and solutions where up-to-date (at the time of writing this, Kubernetes v1.14 is used in this program) and I didn't find any major issues. At the end of every chapter, you'll also get several multiple-choice questions to test your knowledge.
It took me about three weeks to work through this online training and I used the Google Cloud for creating the virtual machines for the Kubernetes cluster. After finishing the course I decided to train for two more weeks with the preparation material I found on GitHub. I focussed on getting hands-on experience and trained my
kubectl skills. Especially the CKAD exercises from dgkanatsios on GitHub offered a great variety of examples to learn.
In addition, I worked with the Kubernetes documentation on the official homepage to deepen my conceptual knowledge of Kubernetes.
Review of the CKAD certification exam
The certification exam is 100% online and you don't have to travel anywhere. Once you feel ready to take the exam, you can select a day and time of your choice. During the exam, you need to always enable your camera and are supervised by an instructor from PSI.
In addition, you are not allowed to have anything on your desk or have a second person in your room. The instructor will first make sure your exam environment is meeting the guidelines and prompt you to adjust anything if needed (enable lights, remove drinks, etc.).
For the CKAD exam, you have 120 minutes to answer 19 questions. To pass the exam you need an overall score of 66%. All questions are designed to test your hands-on experience with Kubernetes. You'll get access to a shell running in your browser with access to four different Kubernetes cluster. Every question starts with the required
kubectl command to configure the correct cluster context for the question.
The questions test your knowledge for creating Kubernetes objects (Pods, Deployments, Services), troubleshooting existing cluster setups (logging, resource utilization, etc.) and debugging failures (Pod not starting, adjust configurations, etc.).
Top 5 tips for passing this CKAD certification
Tip 1: Get hands-on experience with Kubernetes
As all questions in the exam require active interaction with the Kubernetes cluster you should really have hands-on experience. There are no multiple-choice questions about theoretical stuff which you could learn and just memorize. To get this hands-on experience, you should have either project experience with Kubernetes or start with online courses. I can recommend the course from the Linux Foundation (LFD259), but there might also be good courses on Udemy/Pluralsight, etc. Furthermore, I can recommend getting access to a Kubernetes cluster in the cloud for your preparations. All major cloud provider offers a managed Kubernetes service. For this you don't need big resources, a small cluster with three nodes (1 vCPU and 3,75 GB RAM) is enough.
The best way to create a new Kubernetes object without manually typing the
.yaml spec is the
--dry-run -o yaml > pod.yaml command argument. This will not create the actual objects in the cluster but the specification to create these:
kubectl run --generator=run-pod/v1 nginx --image=nginx --dry-run -o yaml > nginxPod.yaml
kubectl create deployment myDeployment --image=nginx --dry-run -o yaml > myDeployment.yaml
You can then use these templates to adjust the missing configuration.
Tip 2: Don't waste time during preparation to memorize all
.yaml attribute specs
Memorizing all possible attributes for a Kubernetes Deployment is hard and you shouldn't focus on this while preparing for the certification. During the exam, you can open one additional tab in the browser and can use the full Kubernetes documentation. So if you are asked for more advanced configurations like the
securityContext for a pod, rolling update configurations of a deployment, you'll find examples in the documentation. Either prepare with the documentation to know where to find the examples or make use of the search functionality of the documentation (be careful to not exit the documentation while clicking on a search result). Especially in the Tasks section of the documentation, you'll find the required
.yaml for nearly every problem.
In addition, be familiar with the
kubectl explain command. This will help you identify the correct attribute name for your specification e.g.
kubectl explain pod.spec.containers
kubectl explain deployment.spec.template.metadata
But keep in mind you don't have the time in the exam to scroll trough the documentation without knowing where to go.
Tip 3: Read the exam questions carefully
You might think this tip is self-evident. During the exam, I often jumped right into the shell and did not really focus on the whole instruction. Fortunately, I recognized missing parts after reading the instruction again. The questions are really explicit and strict in what to do. Always read the whole instruction first and look for the cluster name to work with (there are four), the namespace, pod/deployment names and image tags.
Tip 4: Skip low-weighted questions first
The CKAD exam contains 19 questions for which you get 120 minutes. Each question has a different weight and may not be as important for the overall score as the following question. Getting a 100% score (you need 66% to pass) and answering all questions is pretty tough as it's not a multiple-choice exam. You should first focus on simpler questions with higher rates. I skipped about five questions which had pretty low scores and came back to them after finishing the low-hanging fruits. Btw. I scored 75 % and definitely lost some points due to this.
Tip 5: Become familiar with vim/nano and basic Linux commands
You'll perform the exam in your browser and get access to a shell. To update and create Kubernetes object you should be able to modify the
.yaml files with an editor like vim or nano as you don't get a graphical user interface. In addition, you might be asked to pipe the output to a file, ssh to a node, navigate to a folder or some other basic server operation.
Final thoughts for the CKAD review
If you plan to start working with Kubernetes or applying for a job with requirements on Kubernetes, I can totally recommend taking this exam. You'll learn everything you need to know as a developer. The exam questions are fair but require you to act with the right amount of speed. With enough hands-on practice, you should be able to pass it.
The certification exam can also be purchased without the online course if you are already working with the other course or have enough experience already.
Further resources to train with or get information about this program:
- Official information about the CKAD at the CNCF homepage
- Kubernetes for Developers (LFD 259) Linux Foundation online course
- CKAD prep notes from twajr on GitHub
- My GitHub repository for preparing for this exam
- Excellent CKAD exercises from dgkanatsios on GitHub
And there it is!
Have fun preparing for the CKAD exam,