Three Lenovo mini PCs running k3s. Ansible handles node provisioning; Flux GitOps is being layered in now to bring every deployment under version control.
I started on a single Beelink running Docker Compose. It hit a ceiling when I wanted more services and a rollback path I trusted. Adding a second machine just doubled the coordination work.
Three Lenovo mini PCs, each running as both control plane and worker. k3s for the cluster runtime; less overhead than upstream Kubernetes and the same APIs. Ansible handles initial node provisioning and configuration. Flux is being added so every workload change is a Git commit instead of a kubectl apply.
Cluster is stable and running. Flux reconciliation is being wired up against a private Git repository. Once Flux is solid, the Docker Compose workloads on the Beelink migrate into the cluster progressively, with the Beelink as a Docker fallback.
k3s · Ansible · Flux · kubectl