My Journey with Kubernetes
A Tale of Challenges and Learning
The Beginning
Around 2022, I got thrown into the world of Kubernetes. My first real experience was working on a project with a Jenkins-controlled cluster that managed pods for building and deploying our internal applications. At that time, Kubernetes felt like complete magic to me. I was fascinated but also totally confused.
Taking Charge of My Learning
After that experience, I decided I needed to really understand Kubernetes. The official documentation wasn't very helpful for someone starting out like me. So I took a different approach and learned the basics of the things that actually matter by hands on stuff:
- Docker - How containers really work
- Linux - The OS that runs everything
- Networking - How systems talk to each other
- Web Development - Putting it all into practice
Learning these fundamentals helped me fill the gaps and finally see how everything fits together.
Getting My Hands Dirty
I started experimenting with different ways to set up Kubernetes clusters:
- Manually set up an EKS Cluster on AWS EC2 instances
- Tried Terraform for managing EKS infrastructure and Infrastructure as Code (IaC)
- Built a Kubernetes cluster from scratch - I learned a lot doing this. My homelab setup is K3S btw.
Each project taught me something new. There's nothing like actually building something to really understand how it works.
Where I Am Now
Today, I'm running a K3s cluster on an old laptop at home. It's actually working great. I can run about 30 pods at the same time without any issues.
The setup includes:
- ✅ Networking that works properly
- ✅ CoreDNS for service discovery
- ✅ Local storage.
- ✅ Pods can talk to each other smoothly with CoreDNS.
- ✅ Self-hosted Docker registry
- ✅ Traefik as Ingress controller.
- ✅ Cert-Manager with Cloudflare DNS Validation plugin.
- ✅ AdGuard to manage my private DNS.
Getting pods to communicate with each other was a big milestone for me. It sounds simple, but it actually took some real understanding to get right.
Being Honest About Kubernetes
Here's the thing - Kubernetes isn't the right choice for every project in my opinion.
What You Learn From Kubernetes
- 🎓 How networking actually works
- 🎓 How to optimize container applications
- 🎓 Debugging and troubleshooting
- 🎓 Better application architecture
- 🎓 How to think about infrastructure
My Take on Kubernetes
I have mixed feelings about Kubernetes. It's not a yes or no question for me.
✅ It's great for learning - It forces you to think about how systems work and how to build things the right way.
❌ But it's not always the answer - Not every project needs Kubernetes.
If someone asked me to implement Kubernetes for a small project, I'd be happy to show them the benefits. But I'd also tell them to think about whether they really need it.
The best approach is to pick the right tool for the job. Sometimes that's Kubernetes, and sometimes it's something simpler.
Final Thoughts
Kubernetes taught me a lot about systems, patience, and how to solve hard problems. Would I recommend it? Yeah, but just know it's going to be a real commitment, but I liked it.
The key is knowing when to use it and when to use something else instead.
Peace. ✌️
Revised by Github Copilot.