CKA -KTHW
Introduction
I like taking certification exams as they provide a structured way to learn the technologies involved and also force me to set a specific reading schedule. To this end, when the CNCF announced the Certified Kubernetes Administrator (CKA) exam, I was excited as it would give me an opportunity to gain an in-depth understanding and validation of my knowledge of one of the most important technologies in modern cloud computing 1 and the defacto container orchestration and management tool2 3. The exam was launched last year and I eagerly registered for the beta rollout, unfortunately/fortunately, I was twice unable to take the exam due to technical challenges(unfortunately as it would have been nice to get an early idea of how the exam was, fortunately as I very well would have failed!); however, I do have an opportunity to take the final released version with a retake option.
The CKA is a hands on exam similar to the Linux Foundation LFCS exam and while there are excellent resources out there[k8s4th] [k8s5th] [k8s6th] [k8s7th] [k8s8th] [k8s9th] [k8s10th] [k8s11th] [k8s12th] [k8s13th] that give pointers on how to prepare for the exam, if it is anything like the LFCS exam (which I have failed twice so far), then the potential exam taker will really benefit from having extensive hands-on experience in order to be prepared to pass the exam. One very good resource is Kelsey Hightower's Kubernetes the hard way lab on github that seems to map very nicely to the Installation, Configuration & Validation objective of the curriculum. In order to go through the lab, you do need access to GCP; there is a free trial available but I had already used and expended that and didn't want to create multiple accounts. I also had an Intel Avoton server handy and what better way to learn than to try converting the lab to run on KVM and replicating the lab as closely as possible.
Doing this will serve two purposes, using Linux as my daily OS to gain familiarity and muscle memory (I still intend to take the LFCS, waiting/hoping for a discounted voucher) and as a learning tool for the CKA exam without incurring any cloud cost; I can also tear down and build the cluster multiple times and leave the VM's running all day long without fretting.
KTHW leverages services provided by Google's cloud platform and in order to follow along, these services have to be replicated. In setting up the lab, I have used keepalived to provide load balancer across the Kubernetes controller node and used weaveworks Weave Net for networking. I initially looked into seesaw but was unable to get it running, similarly for Cilium which looks like a very well thought out design; still hoping to get those working but at least I was able to replicate the lab. vyos was also used to provide isolation from my home network in order to use the same IP range used in the lab, while BIND was used to provide name resolution. Overall, I was pretty pleased with the whole experience and in subsequent post, I will detail the steps taken to implement the lab.
[k8s4th]: K8s Docs [k8s5th]: Kubernetes Certified Administrator [k8s6th]: Heptio [k8s7th]: Kubernetes Webinars [k8s8th]: Julia Evans [k8s9th]: TGI Kubernetes [Deprecated Playlist] [k8s10th]: Kubernauts [k8s11th]: Kubernetes Fundamentals (LFS258) [k8s12th]: Introduction to Kubernetes [k8s13th]: A tour of the Kubernetes source code