Over the past 8 years, I've worked in some form of IT Operations, and I've seen two distinct opinions on obtaining systems certification. The cert game is a waste of time; and a certain pride in proving one’s skill. In the past I most identified with the former camp; “I already do this thing, I don’t need to qualify my skill.”
However, I did get my first certification last week, and I’m now a Certified Kubernetes Administrator. I think Kubernetes is an important platform, and it’s important to demonstrate proficiency.
If you use Kubernetes daily, are working on an internal proof of concept, or run it in a Homelab, spend a few weeks refreshing the basics, then take the test. Otherwise, I highly suggest spending the time to manually setup up a multi-master cluster. This might take several to many months, depending on free time.
Kubernetes is not just a container orchestrator, it’s a common infrastructure vocabulary.
Disclaimer, I like Kubernetes. I find the API approach to infrastructure management compelling. I like that it's Open Source Software and not one single entity has full control over it, the community is huge, the core repo has 51 thousand GitHub stars.
I like that all the big players have an offering, and further coalescing around Kubernetes as a defacto-standard.
As a common language, I can hop on a cluster and have a pretty good idea of how it's set up in about 2 minutes. I like how I can debug errors the same way in a production versus development environment. I can now focus on business problems instead of infrastructure problems, which means I'm a profit center instead of a cost center... an old infrastructure engineer can dream.
A few things that took some getting used to. Kubernetes is verbose; describing a container can take 50 lines of YAML. The community is huge and keeping up with the cutting edge or learning about a cutting edge idea feels like a full-time job. And, I thought I had a couple of really interesting ideas, only to find out the community had the same idea last year and there’s a project out there already. Which validates my idea, but more importantly validates the growth and common vernacular of the platform.
Prepare for the Test
The test is not easy, don't expect to waltz in after using Kubernetes for 3 weeks and finish it with 100%. As with most industry certifications, the test is a practical skill-based approach. I found a few things helpful I wanted to share.
A quick and dirty web-terminal course to accustom oneself with interacting with primitive Kubernetes resources via the command line utility kubectl.
A thorough and comprehensive list of Kubernetes resources and components.
An Operator is a KubeAPI Client, a control loop, and a custom resource definition, (follow up blog post, incoming). Essentially, Kubernetes-native platform automation.
This Kelsey Hightower GitHub repository has become the go-to learning mechanism to manually set up a Kubernetes Cluster. I found it an excellent way to understand the system architecture. And, a method to judge deployment automation.
Personally, I deployed a few bare metal labs, played around with the Google Kubernetes Engine and wrote a few deployment tools. Other great tools are Rancher, AKS, EKS, etc… Later, I created a Kubernetes Operator, to explore the API.
Build something awesome. You’ll be more motivated to learn. You’re limited by your imagination. CDN? You betcha. Cassandra? Go for it. Wordpress? Sure.
Overall, I started using Kubernetes 8 months ago but started seriously preparing for the Exam about 6 weeks ago.
If you don’t do anything else today I highly suggest taking a look at Kubernetes the Hard Way if only because it demystifies a complicated system.