Running k3s as a Solo Developer
Kubernetes has a reputation for being enterprise overkill. On a single VPS with k3s, it became the most boring part of my stack.
"You don't need Kubernetes" is good advice for most solo developers. Here is why I ignored it anyway, and why my deploys have been boring ever since.
What I actually wanted
Not scale. A single VPS handles my traffic with one core to spare. What I wanted was:
- Declarative state. The cluster converges on what the YAML says. No snowflake server.
- Zero-downtime deploys. Rolling updates out of the box, no nginx reload choreography.
- One workflow for everything. Portfolio, support system, side projects — same pipeline.
Why k3s specifically
Stock Kubernetes wants three control-plane nodes and your weekends. k3s is a single binary, runs happily on 1 GB of RAM, and swaps etcd for SQLite — which is plenty when your "cluster" is one machine.
curl -sfL https://get.k3s.io | sh -
# That's the install. All of it.
The shape of a deploy
Every project ships the same way: GitHub Actions builds a container, pushes it to the registry, and patches the deployment image tag. The rollout is k3s's problem, not mine.
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
The honest downsides
Certificate rotation surprised me once at 2 a.m. Local debugging needs kubectl port-forward muscle memory. And if you have never run Kubernetes before, the vocabulary tax is real — budget a weekend.
But two years in, the infrastructure is the part of my stack I think about least. That was the whole point.
Building something similar?
I take on a small number of freelance projects each quarter.
Get in touch