Skip to main content

Published · Updated

Stable and experimental components in my K3s lab

This is my personal, non-commercial homelab, running since around August 2025 on three Ubuntu Server 24.04 VPS nodes. It runs real workloads, but it isn’t a client production environment. The main challenge so far has been keeping what I actually operate apart from what I’ve only tried.

  • K3s
  • Kubernetes
  • Terraform
  • Helm
  • Ingress
  • homelab

The baseline I keep running

The cluster has one control-plane node and two workers. Terraform provisions the core infrastructure, and K3s, Helm, Ingress and local storage are the configuration I keep running.

I chose K3s because it has less overhead and a lower barrier to entry than full Kubernetes, comes with useful defaults, and still gives me the Kubernetes API and the Helm ecosystem. With a single control-plane node this isn’t a highly available design, and I don’t present it as one.

Experiments kept separate

I’ve tested Cilium, cert-manager, the Hetzner CSI driver, Argo CD, Flux and Ansible separately. Some were installed for one experiment and removed afterwards, so none of them is part of the baseline.

Keeping them separate lets me compare a change against the K3s, Helm, Ingress and local storage setup before anything is added for good. It also keeps me honest about what I’ve operated and what I’ve only experimented with.

Lab scope

I use the lab for provisioning, cluster operations, deployments, storage and network experiments and troubleshooting, and I rebuild it after experiments that go wrong. It’s a place to try those changes outside commercial systems, not a copy of an enterprise platform. It’s also where my Terraform experience comes from; I haven’t used Terraform in commercial production.