Tips for Passing the Certified Kubernetes Administrator (CKA) exam — Jan 2023
After a month since I sat and successfully completed the Certified Kubernetes Application Developer (CKAD) exam, I passed the Certified Kubernetes Administrator (CKA). I want to use this post to share some of my thoughts and hopefully some things that worked well for me will be helpful for you.
For background and context:
I don’t use Kubernetes on a daily basis. I spend most of my time speaking and working directly with Site Reliability Engineers, DevOps and Security engineers and those that work in cloud related technology. I work in digital/cloud assurance capacity, so it’s critical that I know the technology — how it is being used and how to effectively secure and audit these technologies. Moreover, the number of organizations that are transitioning to cloud native technologies using some form of containerized workloads continues to grow, and that has been predominately Kubernetes. Having this skill set allows me to do my work effectively, while at the same time, learn a very marketable skill set. When I started this journey a year ago, I had absolutely no knowledge of Kubernetes, and at that time, I couldn’t tell you the difference between pod, an image and a container.
If you are entirely new to learning Kubernetes, and you want to jump into the CKA then please 🛑, slow down and take some ⏲ to learn.
In my previous post regarding passing the CKAD, (see link below), I share the courses and materials to get you started on your Kubernetes journey and the resources that you can use to help you. Start with the KCNA then proceed to CKAD which is generally considered to be much easier than the CKA and finally the CKS. So here are my focus areas to get you ready for the exam. Only assumption here, is that you have taken at least the CKAD, so you have foundational knowledge to build on.
My tips for the CKAD:
So here are three tips that worked for me regarding the CKA:
Tip # 1 — Know the differences between CKAD and CKA
There is an approximate 60% overlap between the CKAD and CKA. I spent my time primarily focusing on a number of topics that are specific to the CKA, hedging my bets and assuming I would get questions on these areas. I obviously can’t say what I encountered on the exam due to the NDA with The Linux Foundation but here is where I decided to focus most of my attention:
- Knowing how to backup the ETCD cluster and do the restore. The backup of the ETCD cluster is straight forward but do you recall the steps to perform the restore? How do you stop the kube-apiserver? What files and paths to be changed into to restore the backed up ETCD cluster?
- Updating the KUBEADM. The commands used to update the KUBEADM from one version to another is simply for memorization. The challenge here is knowing how to update the worker node and how to join that worker node to the cluster. Its something I felt an administrator would need to know when working with Kubernetes.
- Static Pods — knowing how to find the static pod path on the worker node and how to update the configuration file.
- JSON Path — you need to know how to extract information about the cluster, the nodes, the pods and put that into some sort of file output. It might be something as simple as finding and getting all the images being used by all the containers and put that into a .txt file. You might need to create a file with custom columns. Either way, this was a focus area for me and should be for you.
- Troubleshooting — this is 30% of the exam according to the CKA curriculum so if there is an issue with the control plane, worker nodes, the pods, the services you must have a thought process on how to resolve the issue. Be methodical here.
- Networking — this includes writing network policies based on the given scenario as well as Ingress. You may be asked to create an ingress network policy that only allows Pods with Label and from this port to come in. You might also be asked to create an egress policy using a namespace selector. This was such a critical area that I spent a lot of time on this for both the CKA and CKAD.
Tip # 2 — #Take the Killershell exam — multiple times!
When you register for the CKA, you will get access to the Killershell CKA simulator test environment containing 25 scenarios and their solutions. The simulation will mirror your actual format but you’ll have 8 more questions (Your CKA exam will have approximately 17 questions). In addition, the Killershell CKA questions are intentionally difficult. More difficult than your actual exam. You are granted access to the simulator twice for 36 hours each time. You can take the simulator as many times as you want during the 36 hours. I would go through these simulations multiple times, again and again. The first time should be two weeks before you take your exam and the second should be a week before. Go through all the questions multiple times until you get a high enough score. I took the exam about 6–10 times in each 36 hour window, understanding where my weak points are. There were some questions, that I thought were too technical and I skipped them.
I wrote down each area that needed to spend more time on. For example, I don’t think I really understood and could explain the difference between, DaemonSets, StatefulSets, Replicasets and Deployments. I would write down what I didn’t know, and go back to the course material and Kubernetes reference documentation to get a clear on understanding on what the service is, how/when it is used and most importantly, what are the differences between each other.
The CKAD was a great first step before approaching the CKA. It made the CKA easier. I finished my exam with 30 minutes remaining and didn’t bother reviewing my work. I went through each question sequentially regardless of difficulty.
Tip # 3 — Check your work
Sounds pretty intuitive but I think its often overlooked. Once you’ve written your configuration files or run your commands, make sure you check your work. You’ve created a persistent volume and persistent volume claim, but is it bound? The Network policy that you used to block traffic from one pod to another, did you run a curl command to make sure access is in fact blocked? If you are upgrading a node and completed all the steps, did you check to the node to make sure the version has in fact been updated? Check your work, and don’t leave points on the table.
Lastly, the only resources that I used were:
- William Boyd’s Certified Kubernetes Administrator on A Cloud Guru. I mainly used this course only to go through practice questions. He gives challenging questions and practice is key
- Mumshad Munnambeth’s Certified Kubernetes Administrator on KodeKloud. The course is more than sufficient to help you pass the exam.
- Killershell’s CKA practice questions.