All entries
February 9, 20266 min read

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.

Kubernetesk3sDevOpsVPS

"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