Conquering the CKA exam: Lessons learned while preparing
Tips on studying for the Certified Kubernetes Administrator Exam
Welcome fellow explorer! I am here to guide you through the center of the Certified Kubernetes Administrator (CKA) exam and pass along my knowledge as someone who recently went through the exam process and passed. The journey will begin as all journeys do, with a preparatory talk during which I will briefly explain what the CKA exam is, why it is useful, and who should take it (hint: anyone interested in Kubernetes). Next, I will help you prepare the right provisions you will require on your journey by going over what resources you will need (hint: you do not have to pay third party providers). Finally, I will detail how to pass the CKA exam by providing some best practices, exam tips, and practice exercises. After reading through, you should feel confident in signing up, preparing, taking, and ultimately earning your Kubernetes certification.
Prep Talk: What is the CKA exam and who should take it?
Kubernetes Experience is Valuable
One of the most important aspects of any journey is ensuring you are starting in the correct location and this journey begins with Kubernetes. If you accidentally arrived here by mistyping CAT, or were searching for a map to the center of the earth, then you are in the wrong place. For those of you who remain, you probably already know that Kubernetes -- which is a portable, extensible, open-source platform for managing containerized workloads and services -- has become one of the hottest open source projects in history. Almost every major company is either adopting or experimenting with it in some form, which has led to a surge in demand of jobs preferring or requiring some Kubernetes experience. A great way to learn and show your Kubernetes knowledge, other than on-the-job experience, is going to be taking the CKA exam.
Certified Kubernetes Exams - CKA vs CKAD
While my journey took me along the CKA exam trail, there is in fact another option if you so choose. There are two official exams offered by the Cloud Native Computing Foundation on Kubernetes, with the first being the CKA exam and the other being the Certified Kubernetes Application Developer (CKAD). If you’re unsure on which exam to take I would personally recommend the CKA. The CKA exam will cover many of the same topics in the CKAD exam, while also going into the management and deployment of Kubernetes clusters, which are important skills to know even if you don't envision using them in your day-to-day job.
The CKA exam is also required for companies that plan on selling Kubernetes related services though the Kubernetes Certified Service Provider Program (KCSP), which requires companies to employ at least three CKA certified engineers. Even if you do not plan on working with Kubernetes, going through the exam process is still a fun way to learn a popular open source tool, as the test is practical and based mainly on your ability to use Kubernetes while putting minor emphasis on pure memorization.
- CKAD: Certifies that developers can design, develop, and deploy applications in Kubernetes.
- CKA: Certifies that developers have the skills, knowledge, and competency to administer a Kubernetes cluster. Additionally, companies who wish to become a Kubernetes Certified Service Provider are required to have at least three engineers who have passed the CKA exam.
The CKA exam format
While the CKA exam may not be as popular as the AWS and Google cloud certifications, I personally found the CKA exam process to be more practical and enjoyable than other certifications I’ve gotten. My favorite aspect of the CKA exam is that it requires you to actually code, during which you’re free to browse the entire documentation, removing the burden to memorize obscure topics and details.
Rather than memorizing a map and then walking into the wilderness and hoping for the best, taking the CKA exam is like having a GPS system with you so you can focus solely on how to navigate to the destination. The test provides you with a Linux terminal and asks you to either run commands or create text files containing the answers to the questions. You could theoretically pass the CKA exam without knowing any Kubernetes, by only reading through the documentation and applying it during the exam, but there is a two hour time limit so you would most likely run out of time.
Provisions: Essential resources for passing the CKA exam
Kubernetes Documentation
The main way to prepare for the CKA exam should be becoming familiar with everything in the Kubernetes documentation and knowing how to apply it efficiently. Most of the questions on the CKA exam were straightforward and similar to what you see in the documentation, so I would recommend going through the concepts and tasks section several times and becoming comfortable executing them quickly.
Kubernetes Cluster
The only other resource that I found essential to passing the CKA exam is a Kubernetes cluster to practice in. While some of the third party providers will offer lab environments with Kubernetes clusters built in, this is in no way a requirement. Instead you can easily set up and practice with minikube, which is fully supported by Kubernetes.
One thing to note is that you will still need to know how to create a Kubernetes cluster from scratch. You can practice on your local machine or even better in Docker.
Map: Best practices and tips for passing the CKA exam
Now that you have an understanding of the exam format and what to expect, I will share with you the map of my journey to the center of the CKA exam. Hopefully this will make your trip easier and allow you to avoid any traps along the way.
kubectl cheat sheet
In addition to the tasks and concept sections in the documentation, I extensively used the kubectl cheat sheet provided in the references section of the Kubernetes documentation. This shows you a list of common commands and their syntax so you do not need to memorize them. However, with practice you will likely need to review the cheat sheet less and less as these commands become routine. The kubectl cheat sheet also has a short script to enable autocomplete which can further save you time. Even if you don’t use the autocomplete, I recommend using the alias command which allows you to type in “k” instead of the full “kubectl” saving you some time and making your life that much easier.
alias k=kubectl
Text editors
The CKA exam is taken from the terminal, so you will need to be comfortable using a text editor to modify YAML and text files. You are allowed to use the text editor of your choice (nano, emacs, vim, etc) and in my case I decided to use vim for its simplicity. The most helpful command for vim was the : set paste which allows you to copy in YAML while keeping its formatting. To use run :set paste and then CTRL+v/⌘+v to paste. Other useful commands were gg which moves the cursor to the top of the file and dd which deletes a line.
Dry run and YAML output flags
Another key to the CKA exam is to generate YAML files quickly as all resources in Kubernetes are derived from them. One option is to simply copy and paste examples from the documentation. While this is a useful option for complex configurations, a quicker method is to use commands on the CLI with the dry-run and YAML output flags. To generate a YAML template you can run a base command and add the --dry-run=client flag together with -o yaml and > FILENAME.yaml.
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
This provides an example YAML template in FILENAME, which can then be modified with your terminal text editor of choice. In addition you can derive a YAML spec from a running resource using kubectl get command together with -o yaml. This is useful if you need to create a similar resource with only a small change.
kubectl get pod nginx -o yaml > pod2.yaml
Mind your KubeCtl version
When practicing either on minikube or using a third party lab environment make sure you use the same kubectl version that will be used on the exam, which as of this writing is 1.19.0 and can be found in the exam handbook. I made the mistake of not looking carefully while using a third party environment and was wondering why my commands were not working as expected based on the documentation I was reading.
Practice practice, practice
The best way to be ready for the CKA exam is simply to practice. Going through and executing all of the examples provided in the tasks and concepts is the best way to learn. Other good resources that I found while studying were these practice questions and these practice exercises. Both of these GitHub repos provide a long and detailed series of questions, as well as some answers if you get stuck. The questions follow a similar pattern to the actual exam and will prepare you well for the types of questions you can expect to see.
Learn from my exam difficulties
There are two areas that I wish I had more practice on before taking the exam. The first topic that I did not feel prepared enough for was on backing up and restoring a etcd database. I had reviewed the section, but never actually coded through the scenarios. Another area that I wish I had practiced more was on upgrading the clusters with running resources. I had practiced on empty nodes, but it would have been more realistic to have practiced on nodes containing running pods and deployments.
Conclusion: Start your Kubernetes journey today!
I hope hearing about my journey to the center of the CKA exam has given you the confidence and knowledge to begin your own Kubernetes journey. By reviewing the map I provided on how to pass the exam you are well on your way. My final recommendation would be to just take the first step and spin up a minikube cluster and begin going through as many of the concept and task exercises as possible. Once you are more confident and feel ready then you can sign up for the exam here. One great thing to note is that CNCF provides one free retake of the CKA exam. This should alleviate some stress since you can always retake it, and the second time around you should have a better sense of what to study for.
Going through this journey will give you an understanding of best practices to help you become comfortable and familiar with Kubernetes. My CKA journey is now complete. I pass the torch, or in this case keyboard, over to you and wish you all the best as you commence your journey. I have the utmost confidence in your ability, just remember to pack the essential provisions and enjoy the views along the way!