Let’s be real: setting up “standard” Kubernetes (K8s) can feel like a full-time job. Between the massive resource requirements and the mountain of components, it’s often overkill for smaller projects.
Enter k3s. Created by Rancher (now SUSE), it’s a CNCF-certified Kubernetes distribution that’s been stripped of the “bloat” and packed into a single binary. It’s “5 less than K8s”—literally, that’s where the name comes from.
What’s the big deal?
Imagine a version of Kubernetes that fits on a Raspberry Pi, boots in seconds, and doesn’t eat your RAM for breakfast. That’s k3s. It swaps out heavy components (like etcd) for lighter alternatives (like SQLite) by default, though it’s still fully compliant with the K8s API.
My Lab Configuration
For this test, I used the following: Physical Hardware MSI NUC Mini PC 32 Cores 32GB RAM and 250GB NVME 2 x Raspberry Pi 4 2 x Raspberry Pi 5 Router Dedicated 1GBps Network Switch
Hypervisor Proxmox
Workloads/Services 2 x Ubuntu VM as K3s Server Nodes 1 x Physical Server with Ubuntu as K3s Server Node (Raspberry Pi 5) 2 x Ubuntu Server VM as K3s Worker Nodes 3 x Physical Server with Ubuntu as K3s Worker Node (Raspberry Pi 5)
The Good Stuff (Advantages)
- Tiny Footprint: The whole thing is a single binary under 100MB. It can run comfortably on 512MB of RAM.
- Speedy Setup: You can get a cluster running with exactly one command. No, seriously:
curl -sfL https://get.k3s.io | sh -. - Edge & IoT King: Because it’s so light, it’s the go-to for ARM devices (like Raspberry Pis) and edge computing.
- Batteries Included: It comes pre-packaged with essential stuff like Flannel (for networking), CoreDNS, and Traefik (for ingress). You don’t have to go hunting for plugins just to get traffic moving.
- CI/CD Friendly: Need a disposable cluster for a quick test? k3s spins up so fast it’s perfect for automated pipelines.
The Not-So-Good Stuff (Disadvantages)
- Limited Scalability: While you can scale it, it’s not designed to handle the massive, 1,000-node clusters that “Vanilla K8s” eats for lunch.
- SQLite by Default: Great for simplicity, but if you want High Availability (HA), you’ll need to put in some extra work to point it to an external database like Postgres or MySQL.
- Opinionated: Because it comes with Traefik and Flannel pre-installed, you might have to spend time disabling things if you have very specific, non-standard networking needs.
- Not for Legacy: k3s cuts out old “Alpha” features and legacy cloud-provider integrations to keep the size down. If your app relies on those, you’re out of luck.
The Verdict: To k3s or not to k3s?
If you are a developer looking for a local playground, a hobbyist building a home lab, or an engineer deploying to the “Edge,” k3s is a no-brainer. It’s everything you love about Kubernetes without the headache.
However, if you’re building a massive enterprise platform that needs to scale across multiple regions with deep, custom security integrations, you might want to stick with the “Heavyweight” K8s.
Rating
5/5 It makes K8s actually fun.
References
- Raspberry Pi Documentation: https://www.raspberrypi.com/documentation/