← back
Kubernetesk3sInfrastructure

Running Production Sites on a Single k3s Node

Why not managed Kubernetes?

Managed Kubernetes (GKE, EKS, LKE) starts at ~$70/month before you even run a pod. For small production sites that each get a few thousand visitors, that's overkill.

A single Hetzner CAX21 (ARM64, 4 vCPU, 8GB RAM) costs €7.50/month and comfortably runs several Next.js sites, a MySQL database, and all the Kubernetes control plane components via k3s.

The stack

  • k3s — lightweight Kubernetes distribution, single binary
  • Traefik — ingress controller (comes bundled with k3s)
  • cert-manager — automatic Let's Encrypt TLS certificates
  • Helm — deployment management for each site
  • GitHub Actions — CI/CD that builds and deploys on push

Each site gets

  • Its own namespace
  • A Helm release with deployment, service, ingress
  • Automatic TLS via cert-manager ClusterIssuer
  • Rolling updates with zero downtime
  • Resource limits to prevent one site from eating the node

The result

Multiple production sites running reliably on a €7.50/month server, each deploying automatically on git push. Not bad.