首页/云/云与容器速查/kubectl drain 驱逐节点工作负载
本包目录(340 条)
云基础概念44 条计算与存储56 条网络与安全组33 条容器与 Docker106 条
Kubernetes68 条
容器排障33 条

kubectl drain 驱逐节点工作负载

驱逐节点上的 Pod 以便安全维护:对可迁移 Pod 执行优雅驱逐(走 PDB),DaemonSet 与本地存储 Pod 需显式参数处理;先 cordon 再 drain。

云与容器速查云更新于 2026-10-12
执行kubectl drain node-1 --ignore-daemonsets --delete-emptydir-data
PDB 影响遵守 PodDisruptionBudget:不满足时会阻塞等待
参数--ignore-daemonsets 必须(通常);--delete-emptydir-data 明确接受本地临时数据丢失
恢复维护完成后 uncordon
确认kubectl get pods -o wide --field-selector spec.nodeName=node-1

标准流程

标准流程
kubectl cordon node-1
kubectl drain node-1 --ignore-daemonsets --delete-emptydir-data --timeout=300s
# 维护操作……
kubectl uncordon node-1
单副本服务被 drain 会直接中断:驱逐前检查副本数与 PDB,或在业务低峰执行。

易错点

  • drain 卡住不动:PDB 或本地存储 Pod 挡路,看事件找具体对象
  • 无参数硬 drain:报错后加 --force,有状态 Pod 数据丢失风险升高

数据来源与参考

  • Kubernetes Docs:kubectl drain
  • Kubernetes Docs:Pod Disruption Budget

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌