Certified Kubernetes Administrator preparation and certification
Well, that was a long hiatus..... typical tech person starts writing a blog then life, kids and whatever else little time for non-techy hobbies (Lego and games) gets in the way and as soon as you know it, it's been about 18 months since my last post..... Sorry, my bad.
For the last year I've been delivering technical and Google Cloud training which has been very fun and very busy, but recently I took some time to get exam ready and finally take the CKA exam... And passed it!
So I wanted to write something up with my thoughts and how I approached it, as I read several blog posts which I found helpful.
Firstly, my background if you haven't read the "about me" section yet, I'm a Linux sysadmin by trade and I have used containers a fair bit over the years so Kubernetes was a simple concept for me to "get" as it were, knowing what problems it solves, what complexities it can also introduce along with the payoffs comes with the fundamental learnings I picked up. Actually using it was what I needed hands-on experience with!
So my background with Kubernetes is I've been using Docker and containers for around 4 years or so maybe longer, I can't remember and I've been using Kubernetes for probably around 3 years.
I would strongly recommend learning the fundamentals of Linux, networking and containers before starting with Kubernetes. It will help with understanding the "why" as well as the "how".
Anyway, that's my public safety disclaimer out of the way, how did I find it and how did I prepare for it, I'll get to the point.
The point
Like I said I had been using Kubernetes with more meaning and anger for the last 2 years, how? Well, there are a few different ways each will be suitable depending on what you want to get out, just passing the cert or you want to get a good understanding of Kubernetes.
There are some fantastic paid courses as well as free resources available out in the world which will cover all the exam objectives. When I first started learning Kubernetes I wanted to learn it and understand it.
First, Kubernetes the hard way by Kelsey Hightower, "Mr. Kubernetes" has a GitHub repo which walks you through creating a cluster, no start-up scripts, no packaged configurations, all handcrafted! This is a great resource to get into the weeds of what a Kubernetes cluster is made of and how all those components communicate and why.
This helped me understand why Kubernetes cluster administration bare-metal/on-prem was firstly considered such a task in the first place and then really REALLY appreciate what managed platforms of Kubernetes like Google Kubernetes Engine do and what benefits it adds. Kubernetes the hard way is a fantastic way to spend time learning about Kubernetes, but it might be overkill for someone getting started. I already had a grasp of the basics before trying this and used it to understand the components of the cluster.
I also took to creating a cluster using Kubeadm which is a packaged version of all the Kubernetes components, it's a nice in-between from doing it the hard way and having it all done for you with a managed service like GKE. This is slightly more manageable if your time is restricted and just want to get a cluster up and running to play around with.
Kubeadm is also what Kubernetes exam clusters are based on, so knowing how to manage and use it is also an important skill to practice and learn.
With a cluster at my disposal, I decided to try and deploy all the containers that I use at home like Homeassistant, Pihole, Unbound etc and deploy them on a cluster, having a cluster also let me have a tinker with ArgoCD which is incredibly cool (another blog post maybe...) So I had some real-world context to practice with which helped me get everyday practice with using different objects and scenarios in a Kubernetes cluster.
Finally, another resource I suggest if you don't have spare compute capacity like VMs or Raspberry PIs and don't want a GKE bill, MiniKube is a great tool to get something that will run on your laptop and you can use to practice using kubectl and applying manifest yaml files.
Now, I could have hammered in the course and passed within 6 months, maybe less, I've read enough posts that people have said that's achievable which is fine if that's what you want to achieve, I wanted to learn Kubernetes to learn it not to get a cert and forget about it, in fact, I still am learning as much as I can about it! It's one of my current favourite topics.
I took the certification to validate to myself that I have learnt the skills I set out to learn and wanted to test myself under pressure. (I probably just hate myself deep down :laughing_but_crying)
Exam details
The Kubernetes Administrator exam is performance-based, meaning you don't need to remember facts, numbers and maybe some obscure information that you'd only ever need in an exam but you're tested on how well you perform tasks on real clusters and under time pressure, 2 hours of time pressure to be exact!
You get 15-20 questions in ranging difficulty, some will be easier one-liners, and others will be more difficult tasks like troubleshooting and redeploying workloads or other objects right through to actual cluster administration.
This exam is also somewhat "open book" meaning that you can use the documentation at the kubernetes.io site during the exam (certain domains are allowed), which is very handy for when you need to write the yaml manifest files.
You can buy an exam voucher from the Linux Foundation training portal the good news is there are usually discounts and even bundles, I purchased mine with the KCNA certification for a discount.
The CKA voucher will also give you an additional exam attempt if you fail, which does help take the pressure off, though from purchase you have 1 year to attempt both tries. You also get 2 sessions using killer.sh which is great to practice different scenarios and it's a very close simulation to the exam so it's good to get used to before you head into the exam.
At the end of the day it's just a certification exam, the important part is learning and getting experience with something you enjoy using! Now I'm not someone who knocks certifications, I've got a few and failed a few, they're great for validating the skills that you've learnt. I really enjoyed the CKA exam as it was a real test of skills, just you and a bunch of clusters doing real-world tasks!
The main takeaway is practice makes permanent when using Kubernetes, practice the kubectl CLI, practice using different objects and practice breaking and fixing your cluster.
Practice makes permanent!