Een k3s cluster op Proxmox opzetten vereist drie VMs, een externe loadbalancer, en een gedeelde NFS mount voor persistent storage. Dit artikel beschrijft de exacte stappen voor een productie-ready setup.
Waarom k3s op Proxmox?
K3s draait prima op lichte VMs. Op Proxmox geef ik elke node 2 vCPU en 2GB RAM — meer dan genoeg voor een homelab cluster. Het grote voordeel ten opzichte van full k8s is de installatie: één commando per node.
Node setup
Drie Ubuntu 24.04 VMs: k3s-1 als control plane, k3s-2 en k3s-3 als workers.
# Control plane
curl -sfL https://get.k3s.io | sh -s - server \
--disable traefik \
--tls-san k3s.siekman.io
# Token ophalen
cat /var/lib/rancher/k3s/server/node-token
# Workers (vervang TOKEN en SERVER_IP)
curl -sfL https://get.k3s.io | K3S_URL=https://SERVER_IP:6443 \
K3S_TOKEN=TOKEN sh -
Externe Nginx reverse proxy
Traefik disable ik bewust — ik gebruik een bestaande Nginx instantie buiten het cluster als ingress punt.
upstream k3s_nodes {
server 192.168.1.11:80;
server 192.168.1.12:80;
server 192.168.1.13:80;
}
server {
listen 443 ssl;
server_name *.siekman.io;
location / {
proxy_pass http://k3s_nodes;
}
}
NFS voor persistent storage
# Op de NFS server
apt install nfs-kernel-server
echo "/mnt/k3s-data 192.168.1.0/24(rw,sync,no_subtree_check)" >> /etc/exports
exportfs -ra
Dit geeft je een stabiele basis voor stateful workloads zoals MariaDB en Gitea.
Wat is k3s?
K3s is een lichtgewicht Kubernetes distributie van Rancher, ontworpen voor edge en resource-beperkte omgevingen. De binary is kleiner dan 100MB en gebruikt sqlite als default datastore.
Hoeveel RAM heeft een k3s node minimaal nodig?
Een k3s agent node heeft minimaal 512MB RAM nodig, maar 1GB is aanbevolen voor productie.
Dit artikel lezen in het Engels?
Read in English →