Shutting down a PVE host
- When
- Before powering off pve, pve1 or pve2.
One host at a time. Each PVE host carries one member of every three-node cluster (the k8s control
plane, Ceph, OpenBao), and each cluster survives losing one. Which VM lives where: pve_node in
Ansible terraform/prd/vms.tf.
Before #
-
Know what goes down with it
qm liston the host -
A Ceph node on it
ceph osd set noout -
srvk8s1/2/3 on it: cordon the node, then
kubectl rollout restarteveryiac.webathome.org/pre-drain=trueDeployment running there (today keycloak-prd and keycloak-dev) and wait for Ready. Then drain it:kubectl drain <node> --ignore-daemonsets --delete-emptydir-data --timeout=300sCNPG moves the Postgres primary off the node by itself.
-
srvk8s4 on it (it lives on
pve): don't drain. Its taint and pinned volumes mean nothing can move. It hosts every KubeCoder environment, so commit and save your work first.
Down for the whole window when it's pve
zpool2 workloads (storage and its Samba share, mydownloads, prometheus-server), srviac,
Home Assistant, wrkdev, wrkdevwin. srvk8sdev has onboot=0 and stays off.
After #
-
Drained node
kubectl uncordon <node> -
Ceph
ceph osd unset noout -
Ceph health
HEALTH_OK -
OpenBao unseals and rejoins by itself. Check that all three name the same leader:
for n in 1 2 3; do curl -sk https://srvvault$n.home:8200/v1/sys/leader; echo; done