Ga naar hoofdinhoud

Beslissingen

De afwegingen achter de architectuur. Hieronder de keuzes die direct uit de repo (Terraform-modules, Ansible-playbooks, comments) blijken.

3 control-plane (HA), nooit 2

etcd en corosync willen een oneven quorum. Met 3 control-plane-nodes mag er 1 uitvallen (2/3 quorum blijft) en leeft het cluster door. Met 2 nodes is het quorum juist slechter dan met 1: elke uitval breekt de meerderheid. Daarom 3 CP-VM's, verdeeld over 3 fysieke Proxmox-hosts (anti-affinity), met een kube-vip VIP (192.168.178.201) als stabiel control-plane-endpoint.

Template-per-shape i.p.v. post-clone hardware-overrides

De k8s-cluster-Terraform-module bevat bewust geen cpu/memory/disk/ operating_system-blocks. De bpg Proxmox-provider hangt op post-clone hardware-overrides, dus de shape komt 100% uit de template. Gevolg: één template per VM-vorm, en de VMID's zijn cluster-breed uniek (per host een eigen reeks: 9001/9002, 9011/9012, 9021/9022).

kube-vip VIP als endpoint, niet één CP-adres

De kubeconfig en het control-plane-endpoint wijzen naar de kube-vip VIP 192.168.178.201, niet naar een individuele control-plane-node. Zo blijft het cluster bereikbaar als de node achter een vast adres wegvalt. De VIP zit bewust niet in Terraform (var.vms) — die wordt door Ansible/kube-vip beheerd.

local-lvm i.p.v. gedeelde storage

Storage is local-lvm per Proxmox-node. Geen Ceph: dat is binnen homelab-scope te veel overhead. HA wordt op cluster-niveau (etcd-quorum + anti-affinity over hosts) opgelost, niet op storage-niveau.

Docs extern gehost, niet in-cluster

Deze kennisbank (Docusaurus, statische build) wordt buiten het cluster gehost, zodat ze leesbaar blijft als het cluster zelf onbereikbaar is — juist tijdens een incident wanneer je de runbooks nodig hebt.