Cordon and drain
Cordon
Cordon marks a node unschedulable: running pods stay, new ones go elsewhere. Cordoned nodes wear a badge in the list. Uncordon lets pods schedule there again.
Drain
Drain… cordons the node and evicts its pods, like kubectl drain, with a progress sheet you can watch.
- DaemonSet pods and static (mirror) pods stay where they are.
- Evictions blocked by a PodDisruptionBudget are retried until the budget allows them, so a drain never breaks the availability you configured.
When the drain finishes, the node is empty and still cordoned; Uncordon it after the maintenance.
