首页/开发/CI/CD 与发布速查/节点排空(drain)与发布穿插
发布策略60 条

节点排空(drain)与发布穿插

节点维护前 cordon 停止调度、drain 驱逐 Pod;驱逐受 PDB 约束,DaemonSet 与使用本地存储的 Pod 需要单独处理,避免数据与可用性事故。

CI/CD 与发布速查开发更新于 2026-10-12
cordon标记不可调度,不驱逐现有 Pod
drain驱逐 Pod;对 DaemonSet 需显式忽略
本地数据--delete-emptydir-data 才会删除 emptyDir 数据
恢复uncordon 重新可调度

安全排空

安全排空
kubectl cordon node-1
kubectl drain node-1 --ignore-daemonsets --delete-emptydir-data
kubectl uncordon node-1
多节点维护串行推进并保留缓冲容量:同时 drain 多台会把 PDB 逼到边界,驱逐排队等待。

易错点

  • 无节制批量 drain:可用容量骤降,服务延迟上升
  • 忽略本地存储 Pod:强驱逐造成数据丢失或 Pod 无法迁移

数据来源与参考

  • Kubernetes 文档《Safely Drain a Node》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌