Kubernetes isn’t overkill for solo founders. Thinking you need a full team to run it is the real overkill.
Written by Leo AnnetteMoving to K8s was a choice motivated primarily by the admin pain of having to babysit servers in the early hours of the morning.
While some may say that K8s is hard (and it can be), I would definitely say that it is easier than being a solo on-call engineer at midnight.
Solo founders, K8s is worth it.
It’s not just about the ability to scale.
It’s about the ability to be reliable, repeatable, automated, and about having a peace of mind.
You're not using K8s the way the big companies do (with 12+ DevOps engineers).
You're using it for set-and-forget infrastructure.
Predictable behaviour is important, there's no need for magic.
Trust, automation, and predictability are the most important.
Don’t pick K8s if you’re not the one managing it.
At its core, K8s is an open-source, scalable, containerized application management system. It is a “universal” application layer that determines where your apps will run, how they will be recovered, and when they will scale, all in an automated fashion.
Where Google’s Search, Gmail, YouTube, and other apps ran on google's internal system called Borg.
Kubernetes is the public, simplified version of Borg.
Your life as a solo founder or as a team of 2 to 3 is as follows:
For me, its over 4,500 commits to an accounting SaaS, a dog that has to be walked, and a gym routine. There is no room left for, "Oh, the server is full again, time to SSH and clean logs."
Infra choices aren’t whether you can run Nginx on a $5 VPS.
It’s whether you want infra to be one more spinning plate in an already overloaded schedule.
The real question becomes:
For me, that answer was Kubernetes.What lets me forget about infrastructure for the longest time while still trusting it with real customers?
My road to Kubernetes didn’t start with “I want containers.”
It started with what everyone calls the simple setup.
A single EC2
One API
Managed database
Reverse proxy, PM2/systemd to keep things alive
More VMs
Load balancer
VPC
NAT gateway
Security groups
Still “simple”… until it isn’t.
You responsibly want to test on a separate environment before deploying.
So you duplicate everything:
New VPC
New NAT
New subnets
New load balancer
New API
New database
Now your infra bill quietly doubles.
You want to add:
A marketing site
A headless CMS
Background jobs
Cron jobs
Your infra surface explodes.
You add Redis.
Now you have all of the following:
API
DB
Redis
CMS
Marketing site
Staging copies of everything
The servers have frozen and stopped working with strange errors for a few minutes.
You just restart the servers and hope it doesn't happen again.
I went from:
"I am building a product"
to
"I am a part time sysadmin with a SaaS on the side."
The Break Point:
I Needed Predictability, Not "Simplicity"
K8s Is Too Complex! I will just keep it simple
Is what I thought to myself. I then thought to myself:
"Simple" then very quickly becomes fragile when you have:
People seem to forget that when it comes to complexity, it never disappears.
No... It just moves off to the side and becomes:
manual SSH sessions
hand managed processes
ad hoc scripts
snowflake servers
I did not move to K8s because I love YAML. I did it because I wanted to have
Predictable behavior
It restarts when it crashes during your sleep.
When deployed, it rolls out a safe deployment.
Adding staging or other environments doesn't double the amount of thinking I have to do.
Adding other services doesn't require reinventing the whole process.
I wanted infrastructure that resembled code and not like building a Jenga tower.
People think about FAANG for Kubernetes:
Managed GKE cluster (on Google Cloud)
I don’t run my control plane (I strongly believe that small teams should not run their own control plane).
1-2 namespaces
production
staging
A handful of services
ArgoCD for GitOps
I push to Git, Argo syncs.
Autoscaling + Self-Healing
Pods restart. Nodes rotate. Workloads move.
CronJobs for background tasks
I don’t go to the Kubernetes dashboard most weeks.
That is the point.
You don’t need NASA to run three containers.
Kubernetes should just be thought of as A boring, reliable platform for a handful of important services.
(This is a screenshot of the uptime dashboard of my SaaS, Fortune.app. It has been running for 365 days with 99.99% uptime. This shows public services only - internal services like Redis and databases have also maintained 100% uptime.)
When you add services, all you do is the following blocks:
Deployment + Service + Ingress. (and this is likely a copy paste from a previous service)
No manual VMs. No handshake with load balancers.
Merge a PR to main. CI/CD pipeline runs:
Then ArgoCD applies updates to the cluster. Kubernetes does a rolling deployment for the new version. All done in less than 5 minutes.
You can just create another namespace.
You can have one orchestrator and keep a single mental construct of "everything is a pod."
When nodes restart, pods can get rescheduled. You can stop being hostage to a single troublesome EC2 instance.
Kubernetes is not for you if:
And tbh, if you dont like YAML, you probably dont like Kubernetes.
A PaaS is your best bet. Kubernetes can be great once you have a infrastructure bottleneck.
These days, several platforms have high-quality offerings. Vercel, Netlify, Render, Railway, Fly.io.
But given the strict infrastructure demands present in my case (accounting SaaS), I had the following concerns:
Vercel/Netlify: Frontend is fantastic, but at that time, I could not rely on them for long-running backend workers.
Render/Railway: Excellent user experience, but way too much vendor lock-in.
EC2/VPS: had to revert to manual upgrades, firewalls, daemons, scripts, SSL hell
Kubernetes granted me:
More control than PaaS.
More predictability than VMs.
And the Google Cloud credits were useful (2 years of credits on GCP, that sealed the deal).
Kubernetes isnt tied to any cloud.
It's operable in/on:
AWS
GCP
Azure
Bare metal
Virtual Machines
Local clusters
Raspberry Pi
It's the closest thing to production-ready infrastructure that doesn’t lock you in.
Terraform + Kubernetes = Infinite Infrastructure With One Command
With the help of Terraform, one can:
Get/ create a cluster
Introduce/ Install ArgoCD
Introduce/ Install Ingress NGINX
Introduce/ Install External Secrets
Introduce/ Install Cert- Manager
Connect/ Wire everything together
Allow/ Let Argo sync the remaining parts from Git
Your entire infrastructure is reproducible, consistent, automated.
That’s what really sold me.
Not the technology, but the predictability.
The Ultimate Truth: Restful Mind
As a one-person founder, your energy is a valuable resource.
Kubernetes gives me:
The freedom from babysitting infrastructure
The freedom to ship confidently
The freedom to focus on the product, customers, user experience, SEO
The freedom to rest without worrying about zombie processes
It's not really about scale.
It's truly about peace of mind.
In Kubernetes, there's a first time for everything:
First run of a cluster
First Ingress setup
First ArgoCD bootstrap
First engagement with a CRD
First pseudo-code of YAML
First run of a pod with a testing issue that requires debugging.
But it is rather convenient that these are a one time thing. The rest are just repetitions and copy paste.
Is it a new SaaS? No worries, it's the same playbook.
Is it a new worker? No worries, it's the same YAML.
Is it a new Redis? No worries, it's the same chart.
Is it a new marketing site? No worries, it's the same manifests.
It's the blessing of writing code once and reusing it forever. (It's been a while since I made that setup, but it still works whitout any issues in the last 3 years.)
For a start, go small and local
use minikube, k3d, or kind.
Learn about Services, Ingress, and Deployments.
Add ArgoCD + Kustomize and GitOps early
No need to worry about manual infra.
Install Ingress-NGINX
This way, there won't be any need for specific load balancers to the cloud. This is also what give you cloud agnostic infra.
Use Cert-Manager
Saves a free Let’s Encrypt SSL for life.
Use External Secrets Operator
Utilize secret managers for GCP, AWS, or Azure.
Instead of .env files.
Incorporate Grafana with Prometheus
For CPU, memory, pod restarts health of the cluster and RPS.
Get to know the Security Model rapidly
Such as, RBAC, Service Accounts, and the rest.
Once you've gone through it once, everything else is just a mere repetition of muscle memory.
Use Kubernetes in case:
You are building on something quite ambitious
You have an understanding of Docker and Git
You anticipate having several servies
You desire long-term infra stability
Another tool, other than Kubernetes, is advisable in case:
You are in the early stages of your product development, i.e. learning on how to ship your product.
You currently have only a single backend
You really dont like YAML
Infrastructure as code seems to overwhelm you
In case you are looking to save your time immediately, you are better off remaining without Kubernetes.
In case you're looking to save time in the long run, adjacently, for the next three years, you should really start considering using Kubernetes.
No, as long as it is being used correctly. Kubernetes is overkill if you are trying to implement it the same way big, established companies do-- trying to have 80 microservices, custom operators, several SRE teams, etc. For solo founders, it ends up being a set and forget platform, as it scales, restarts, deploys and maintains reliability.
For the most part, students should begin using it with the tools kind, minikube, or k3d in order to learn how to build Deployments, Services, and Ingress as a start. Once they obtain mastery of that, they can move on to adopting GitOps that uses ArgoCD + Kustomize, as it is a way to learn Kubernetes without problems in building something in a dirty, messy, unreproducible way. They should also trying to avoid cloud-specific features for the time being.
The absence of Kubernetes does not reduce raw cloud costs, however, operational costs and time spent by a founder is significantly reduced. Less time is consumed debugging servers, recreating environments and battling with load balancers. If cloud credits like GCP are used, costs become even less.
Absolutely. Kubernetes is completely cloud agnostic. It is possible to run it on:
This decreases the risk of vendor lock-in and provides portable infrastructure.
You should avoid Kubernetes if
In these situations, a PaaS like Vercel, Netlify, or Render is a better choice.
Kubernetes doesn't deal with difficulties concerning features like custom resource definitions (CRDs) and operators, as well as service meshes, Helm, and multi-cluster configurations/helm complexities, since developers only make use of what they need. Solo founders would only make use of a small fraction concerning this ecosystem, which includes, Deployments, Services, Ingress, ArgoCD, and autoscaling.
Kubernetes provides the following advantages, which aids solo founders:
Self healing pods along with a restart automation feature
Steps of rolling updates in addition to safe rollbacks
Staging environments that are reliable
Deploy the backend, frontend, CMS, and workers in a unified manner
ArgoCD enables gitOps workflows
Consistency along with predictability as well as stability
Kubernetes provides the infrastructure anxiety in which they would need to focus on product development.
The answer to this is that the initial set up is the hardest. If one is learning from the very beginning, it can go from a couple of days to a week. However, once one builds their baseline with a couple of features, such as cluster creation, ArgoCD bootstrap, NGINX ingress, External Secrets and Cert-Manager, for each new project, one would be able to use their scripts over and over.
Docker containers and Kubernetes is the program that does most administrative work like operating, managing, adjusting, and recovering the containers. Kubernetes manages the containers and Docker is the container. Eventually, all large applications that implement Docker require something like Kubernetes.
Yes, Kubernetes excels with these types of applications. If your SaaS is made up of an:
API
Website
Marketing Website
CMS
Worker services
Schedulers
This small patch of services can be deployed over one complete service sample of the Kubernetes services.
Yes. There are a number of reasons for the reduction in downtime with automated services:
Roll updating
Failure recovery with automated container restarts.
Node scheduling
Health verification
Pods maintaining the change in work available.
With Kubernetes, you need a working understanding of:
Docker
YAML/configuration files
Git usage
CI/CD
In order to work with Kubernetes, no SRE (Site Reliability Engineering) and no DevOps advance skills are required, as the most challenging aspects of the work flow are covere, are with managed service like Google Kubernetes Engine in Google Cloud Services.
You should install the following tools:
kind/minikube/k3d (for local testing)
ArgoCD (for GitOps)
Kustomize (for clean configuration overlays)
ingress nginx (for universal)
cert-manager (for auto-ssl)
external secrets operator (for cloud secret syncing)
Grafana + Prometheus (for observability)
Since this stack can work on any cloud, it is good for any project as well.
Definitely, because Kubernetes was meant for long-term scaling, starting with a single node, then scaling vertically or horizontally. It is one of the safest infra options for the future.
Definitely. We can reuse the same Kubernetes + Terraform + ArgoCD bootstrap for every new project once the baseline setup is built. That turns infra into reusable code instead of a burden for each project.