In this article I want to tell about my experience when taking the Certified Kubernetes Administrator (CKA) exam.
The CNCF offers a certification program that allows users to demonstrate their competence in a hands-on kubernetes environment. The purpose of the CKA program is to provide assurance that CKAs have the skills, knowledge, and competency to perform the responsibilities of Kubernetes administrators. It is an online, proctoroed, performance-based test that requires solving multiple issues from a command line.
The certification focuses on the skills required to be a successful Kubernetes Administrator in industry today. This includes these general domains and their weights on the exam:
For preparation purposes I highly recommend the udemy CKA course by Mumshad Mannambeth. This course covers all kubernetes topics that necessary for the exam. Depending on your previous skills, I'd recommend going through the practical exercises in this course multiple times. You should be able to solve the mock exams without having to think about it too much, because during the exam you’ll only have a limited amount of time to solve the questions.
Practice environment with CKA like exercises: https://kodekloud.com/courses/certified-kubernetes-administrator-with-practice-tests-labs/lectures/12038875
As you’re only allowed to use the kubernetes documentation (kubernetes.io) during the exam, you should be very familiar with it and know where to find what you’re looking for. Therefore, it’s worthwhile to book certain helpful documentation sites:
- https://kubernetes.io/docs/reference/kubectl/cheatsheet/ (Kubernetes Cheat Sheet)
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ (kubeadm init cluster)
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/ (command for weave plugin)
- https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/ (nslookup / DNS Networking)
- https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/ (init Container)
Other helpful skills for the exam:
- basic knowledge of vi / vim / nano
- basis knowledge of linux bash commands
- basis knowledge JSONPATH syntax
Useful networking commands:
- ip link
- ip addr
- ip route show default
- netstat -nplt
- ps -aux | grep <service-name>
- netstat -anp | grep etcd
- kubectl logs kube-proxy -n kube-system
- kubectl exec -it <pod-name> nslookup <service> > /root/nslookup.out
The exam is delivered online and closely monitored by proctors via webcam, audio and remote screen viewing. The proctor will ask to see your ID and to check your desk and environment. Therefore, you’ll need to make sure that the room is quiet and the desk is clean. Remove any unnecessary electronics and make sure no one enters the room during the exam. The proctor will be available for any questions during the exam via chat, but no technical questions regarding the exam itself will be answered. You can look up further details in the official candidate handbook.
During the exam you will get a browser-based terminal which will have all required tools. You can only open one more tab which must exclusively be under the domain kubernetes.io. Here is a sample CKA environment UI:
It’s all about proper hands-on skills, efficiency and time management. You don’t have to solve the questions in a specific order, so if you get stuck on any particular question you can flag it and come back to it later. The whole exam lasts 180 min and consists of 24 different weighted questions. So, you’ll have about 7,5 min for each question. Be careful not to waste too much time on low weighted questions and skip them if necessary. You’ll need 74/100 points to pass.
In terms of time management, following small tips may help:
$ echo “source <(kubectl completion bash)” >> ~/.bashrc $ alias k=kubectl $ complete -F __start_kubectl k
|Short name||Full name|
# Create a pod with nginx image $ kubectl run nginx --image=nginx# Create the pod template file with dry-run $ kubectl run nginx --image=nginx --dry-run=client -o yaml>nginx.yaml# Create a deployment $ kubectl create deploy nginx-app --image=nginx# Scale a deployment $ kubectl scale deploy nginx-app --replicas=3# Create nginx-service and expose $ k expose pod nginx--name=nginx-service --port=80# Create a secret name my-secret with username shekhar $ kubectl create secret generic my-secret --from-literal username=shekhar
If you have any time left during the exam, try to go through your questions once again and check if everything is running and working as expected.
Once you complete the exam, usually you get the results within the next 36 hours. If you failed, don’t worry, you’ll have a free retake.
Don’t stress yourself too much during the exam, keep calm and try to „think simple“. The questions are pretty straight-forward. If you went through the udemy CKA course and if you’re able to comfortably solve the practical tests, then you should be able to pass the exam. Good luck!