It is tempting to think you are ready to take the Kubernetes Administrator Exam because you have a small cluster at home or have been working with Kubernetes for 5 or 6 months. I’ll admit I was one of those people who thought this, and then I took a look at the curriculum for this and realised I was going to need a bit more study. I was also unaware that unlike other exams I had taken in technologies, this exam is a practical exam, which means you need to be able to put into practice, under a time limit, what you know in the manner the exam wants it.
Like any exam, it is important to understand the subject’s key concepts. These are:
- Cluster Architecture
- Cluster installation (non-managed service)
- Networking
- Scheduling
- Security
- Troubleshooting
The steps I took for revision included setting up a cluster from scratch using kubeadm, I also played with kops a little, but you should focus on kubeadm. When I did this, I also focused on installing networking plugins; at the time, I used flannel and weave, but there are others, like calico, flannel is easy to understand in the first instance.
Core concepts to understand are:
Networking models to understand thoroughly would be
- Services:
- Ingress
- DNS
Troubleshooting, this is a little more complicated. You should know how the kubelet works, what it’s for, what common config files are used in a cluster, and where they sit on the Linux file system.
I cannot stress enough that you need to do be able to do this on the cli with no fancy guis. Also, the exam drops you in a shell with vi editor or nano, and that’s it, so you need to be comfortable in this environment; if you are not, you will not do well.
Pod scheduling and security concepts to understand would be
- Role-based Access control (RBAC)
- Service accounts
- Network policies
- Pod Security Admission
- Kubernetes audit and logging mechanisms
Cluster maintenance, you should practice
- adding and removing nodes from the cluster
- upgrading Kubernetes clusters
- upgrade a linux machine installed as a node
- replacing expired certificates
- backing up etcd
- assigning pods to nodes
So this is what to learn, but where can I learn this? The Kubernetes documentation is very, very good. To learn the kubectl tool, you can look at the cheat sheet. I spent a lot of time on this, and it was worth it as many of the questions I was asked had their answers rooted in these commands; I also found using kubectl explain useful for reminders.
Other learning resources
- Killercoda has some excellent environments, and I used these.
- KodeKloud Training has a great CKA course on Udemy.
- Killer Shell has a good run-through of their preview simulator available, which gives you a good idea of the depth you can expect to need to know, its harder than the exam and you get two instances of this when you sign up, do not make the mistake of not doing this, if you pass this well then its a good indication you are ready, if you score a low score, perhaps think twice about taking the exam soon.
In addition, I set up a home cluster using Raspberry Pi, but if you cannot stretch to that, you can use kops and virtual box to do so. The lowest entry barrier is installing Docker Desktop and enabling Kubernetes there, which will get you started with no fuss and the ability to learn kubectl commands. The docker desktop method, however, is not enough to learn how to set up a cluster from scratch.
If you give all this a good go you should be ready do some practice exams to be sure. One last thing which will be of interest but not strictly necessary for the exam, I always say after this read an article that was pointed out to me by a colleague some time ago and that is Ian lewis’s article The almighty pause container. Honestly I learned so much reading that. Ian also does an amazing job explaining Pods