We're a small pre-seed startup with around 25,000 daily active users, and we recently moved our infrastructure to Google Kubernetes Engine (GKE). The problem is, no one on our team understands Kubernetes well—especially the engineer who set it up (we're dealing with a bus factor of just 1). Currently, we manage everything with manually configured YAML files, and we're experiencing odd routing issues with our pods that seem to get worse as we scale. It feels like a complex system no one fully grasps, and honestly, I think we may have made a mistake moving to Kubernetes so soon. Is there a way to simplify our setup? I'm hoping to find practical steps to transition toward a more automated and manageable infrastructure without losing control. Any tips for someone looking to ease the burden of this 'stick shift car'?
5 Answers
Just use Helm—seriously, it's all you need! Keep your templates simple initially, and then gradually add complexity as it becomes necessary.
I’d recommend starting with GitOps using Flux. It’s pretty flexible, allowing you to utilize all Helm features while keeping your deployments organized.
It’s time to move away from manual configuration and shift towards GitOps and Infrastructure as Code (IaC). You're facing challenges now, but it’ll be much easier to address these issues before everything gets tangled up as you grow.
As long as you aren't self-hosting tricky workloads like databases or message queues, managing your cluster shouldn’t be too overwhelming. Just keep an eye on what you're deploying!
I agree that Helm is a good choice, but managing your values files is key. I've found ArgoCD to be effective for managing those via Helm sources in Git. This way, you can track your resource drifts and update the YAML configurations smoothly.
Totally! Having that visibility in Git really helps with consistency, especially when things get complicated.