Node Drain

Why You Need --disable-eviction for Homelab Kubernetes Node Drains

If you’ve ever tried to drain a Kubernetes node in a homelab cluster and found yourself staring at a terminal that just… hangs, you’ve probably run into PodDisruptionBudget (PDB) conflicts. Here’s why it happens and how to fix it. The Problem I was upgrading my Kubernetes cluster from 1.34 to 1.35, which requires draining each node before upgrading. Simple enough, right? kubectl drain k8s-worker01 --ignore-daemonsets --delete-emptydir-data And then… nothing. The command just sat there. No error, no progress, just waiting. ...

December 28, 2025 · 5 min · Will
Ansible Upgrade

Upgrading Kubernetes with Ansible: A Homelab Guide

How I automated Kubernetes cluster upgrades using Ansible, turning a tedious multi-hour process into a single command. The Problem My homelab Kubernetes cluster was running v1.28, several versions behind the current stable release. Kubernetes only supports upgrading one minor version at a time, meaning I’d need to go through: 1.28 → 1.29 → 1.30 → 1.31 → 1.32 Each upgrade involves: Upgrading the control plane (kubeadm, then kubelet/kubectl) Draining each worker node Upgrading packages on each worker Uncordoning and waiting for Ready state Verifying cluster health Doing this manually across 4 nodes, 4 times, is tedious and error-prone. Enter Ansible. ...

December 27, 2025 · 5 min · Will