Kubernetes On Proxmox With k3s

Run a small k3s VM cluster on Proxmox when Docker-on-one-guest stops being enough and the lab actually wants Kubernetes scheduling, storage, and ingress primitives.

Published January 18, 2025 · Updated January 31, 2025

Kubernetes On Proxmox With k3s

This path exists for the moment a Proxmox lab stops being a handful of hand-managed guests and starts wanting Kubernetes semantics on purpose.

The point is not to turn Proxmox into Kubernetes. The point is to keep Proxmox as the infrastructure layer, then run k3s inside purpose-built Debian VMs so the cluster stays disposable, snapshot-friendly, and easier to reason about than a host-side pile of container tooling.

If the workload is still one app, one guest, and a short list of containers, stay with the simpler guest model in LXC and OCI Containers, Proxmox Stack, or a dedicated Docker VM. Use this cluster when you actually want scheduling, Services, PVCs, Helm charts, ingress, and a cleaner path to growth.

This cluster shape mirrors the validated source layout.

NodeRolevCPURAMDiskIP
k3s-cpControl Plane24096 MB20 GB192.168.50.60
k3s-w1Worker24096 MB30 GB192.168.50.61
k3s-w2Worker24096 MB30 GB192.168.50.62
Total6 vCPU12 GB80 GB

That is enough to build a real cluster without pretending the homelab suddenly needs enterprise ceremony. k3s keeps the control plane compact while still exposing the normal Kubernetes API and packaging the defaults most small labs actually need.1

What This Cluster Adds

ComponentPurpose
k3scompact Kubernetes distribution for the cluster control plane and agents
Traefikin-cluster ingress for HTTP and HTTPS routing
CoreDNScluster DNS
local-path provisionersimple built-in PVC path before Longhorn takes over
Longhornreplicated persistent storage across worker nodes
MetalLBLAN-facing IP assignment for LoadBalancer services
cert-managerinternal or public TLS certificate automation

The starter build here uses one control-plane VM and two workers. That is a sane homelab shape. If the cluster later needs a control plane that survives the loss of one VM, expand to a three-server embedded-etcd layout and put a stable VIP in front of it.2

How This Cluster Is Split

Continuity With The Rest Of The Lab

Footnotes

  1. K3s documents itself as a fully compliant Kubernetes distribution shipped as a single binary or minimal container image, and lists packaged defaults including containerd, Flannel, CoreDNS, Traefik, ServiceLB, and the local-path provisioner: What is K3s?.

  2. K3s documents embedded-etcd HA as a three-or-more server-node layout, initialized with --cluster-init, with an optional fixed registration address in front of the control plane: High Availability Embedded etcd.

Comments

Sign in with GitHub to leave a comment or reaction.