Self Learning Kubernetes (Pt. 1)

Self Learning Kubernetes (Pt. 1)
My basement Kubernetes cluster. Not pretty but it works.

Introduction

I use Kubernetes (k3s) in my home lab in order to replicate an enterprise environment. My reasoning behind this was to learn Kubernetes, have a suite of project management/CI CD/redundant/scalable services that would either directly transfer to my next career opportunity or would in it of itself contribute to becoming a CEO/CTO of my own company. This project of setting up and learning Kubernetes began in November of 2023 with me learning with it on and off again. I purchased 4 Intel NUCs and used an old gaming PC I had to create my Kubernetes cluster.

Network architecture for the cluster

This post won't be going over the install of k3s as the steps are already documented on the k3s website and I didn't stray from the instructions. This is more of an introduction to my self-hosted Kubernetes cluster which will serve as my primary development/tinkering resource. I'm learning Kubernetes as I go and the best way I learn is with a hands on approach supplemented by informational videos and books. The way I learn may be different than the way you learn, but I hope some of the tools or resources I use may help you in your journey!


Learning resources

I began learning Kubernetes from "The Book of Kubernetes" By Alan Hohn which I highly recommend.

I reference this book fairly often when troubleshooting an issue in my cluster as it helps me understand the lower level details as to what exactly is going on. You can't solve a problem you don't understand, and gaining that understanding is the first step in having a successful learning experience.

Another extremely useful resource that helped me understand how Kubernetes works was this YouTube video which is an excellent visual reference:

Tools Used

The most helpful tool for me to get a quick visual of my cluster has been OpenLens which used to be open source but is now a paid application. You can however find the last release of OpenLens here: https://github.com/MuhammedKalkan/OpenLens

The tool isn't perfect but it works great for seeing everything going on in the cluster without having to use the Kubernetes CLI tools. I recommend using it as a visual guide. The CLI tool that comes with your Kubernetes distribution is what I would use when it comes to modifying your cluster.

OpenLens view of my cluster

Conclusion

In conclusion, this is just the beginning of my journey with Kubernetes. Setting up my self-hosted cluster has opened up endless possibilities for exploration, learning, and growth. My goal is to continue sharing what I discover along the way, creating more content that others can learn from. I hope you found this introduction helpful and that it inspires you to dive deeper into your own Kubernetes journey. There's so much more to explore, and I'm excited to continue learning and sharing with you.