Running Kubernetes at Home: Is K3s Worth It?
K3s makes Kubernetes small enough to run on a Raspberry Pi. But should you? Here's an honest take on when home Kubernetes makes sense and when Docker Compose is the better call.
This post contains affiliate links. If you buy through them, I earn a small commission at no extra cost to you.
Kubernetes is the industry standard for container orchestration. K3s is a lightweight distribution that runs on hardware you actually own. Put those together and you get home Kubernetes — which sounds either exciting or overcomplicated depending on your background.
Here’s the honest version of when it’s worth doing.
What K3s Actually Is
K3s is a fully conformant Kubernetes distribution packaged as a single binary under 100MB. It strips out cloud provider integrations, legacy APIs, and alpha features you don’t need, leaving a Kubernetes that can run on a Raspberry Pi 4 or a 2GB mini PC.
It still has the full Kubernetes API. kubectl works. Helm charts work. Anything that runs on upstream Kubernetes runs on K3s. The lightweight part is the packaging, not the feature set.
The Case For Home Kubernetes
Career relevance. If Kubernetes is part of your job or where you’re trying to go, running it at home is genuinely valuable. The gap between “read the docs” and “broke my cluster at 11pm and debugged it” is significant, and that gap only closes with hands-on experience. K3s gives you a real Kubernetes environment to experiment with.
Multi-node practice. K3s makes it easy to run a proper multi-node cluster. Three Raspberry Pis or three small VMs give you an actual control plane plus worker nodes. That’s a fundamentally different experience than single-node Docker, and it’s how Kubernetes actually behaves in production.
Advanced features. Kubernetes has capabilities Docker Compose doesn’t — rolling deployments with zero downtime, automatic pod rescheduling if a node goes down, resource limits enforced at the cluster level, and native secrets management. If you’re running a homelab that genuinely needs any of these, K3s delivers.
GitOps workflows. Tools like Flux and ArgoCD let you manage your entire homelab declaratively from a Git repository. Changes merge to main, the cluster updates automatically. This is a genuinely better operational model for managing many services, and it’s only available in Kubernetes land.
The Case Against
Docker Compose is simpler. For running 10-20 self-hosted services, a compose file per service is direct and readable. No ingress controllers, no persistent volume claims, no understanding of how Kubernetes networking works. If you’re not interested in Kubernetes as a skill, Docker Compose will serve you better with less overhead.
Resource usage. A K3s control plane needs at least 512MB RAM. On a machine with 4-8GB, that’s fine. On a Pi 4 with 2GB that’s also running services, it gets tight. You lose meaningful headroom to cluster overhead.
Debugging is harder. A misbehaving Docker container is easy to interrogate. A misbehaving Kubernetes pod that’s being evicted and rescheduled requires knowing which node it landed on, reading multiple logs, understanding pod states, and sometimes diving into events at the cluster level. The mental model is more complex and the tooling requires more practice.
Most homelab workloads don’t need it. Jellyfin doesn’t need rolling deployments. Pi-hole doesn’t need horizontal pod autoscaling. If you’re running standard self-hosted services for personal use, Kubernetes adds ceremony without adding capability.
K3s in Practice
If you want to try it, installation is fast:
curl -sfL https://get.k3s.io | sh -
That installs a single-node K3s cluster with a bundled SQLite backend, built-in load balancer (ServiceLB/Klipper), and Traefik as the ingress controller. It’s usable immediately.
For a multi-node cluster, run the above on the first node (your server), get the node token from /var/lib/rancher/k3s/server/node-token, then on each agent node:
curl -sfL https://get.k3s.io | K3S_URL=https://your-server-ip:6443 K3S_TOKEN=your-token sh -
Helm installs the same way it does anywhere else:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
A Raspberry Pi 5 (8GB model) makes a solid K3s node — fast enough to be a control plane, efficient enough to also run workloads. Three of them and a small switch gives you a cluster for about $300 in hardware.
The Honest Recommendation
Run K3s if:
- Kubernetes is relevant to your work or career goals
- You want to practice GitOps, Helm, or cluster operations
- You’re building a multi-node setup and want real failover behavior
Stick with Docker Compose if:
- You’re running personal services for home use
- You want simplicity and fast debugging
- Kubernetes isn’t something you’re trying to learn
There’s no points for complexity. The goal is a homelab that runs reliably and that you enjoy maintaining. For most people in most situations, Docker Compose is the right answer. For people trying to close the gap between home tinkering and production Kubernetes experience, K3s is worth the overhead.
Run what serves your actual goals.