删除节点 & 维护

更新时间:2026年5月18日 18:03 浏览:1174

https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/safely-drain-node/

隔离节点

将节点标记为不可调度

kubectl cordon <node-name>

驱逐 Pod

将节点上的所有工作负载(Pod)优雅地迁移到其他节点

kubectl drain <node-name> \
  --ignore-daemonsets \
  --delete-emptydir-data \
  --grace-period=30 \
  --timeout=5m \
  --force

命令参数解释:

  • —ignore-daemonsets:非常重要。DaemonSet Pod(如日志、监控组件)通常需要跑在每个节点上,驱逐它们没有意义,此参数会让 drain 忽略它们 。
  • —delete-emptydir-data:如果节点上有使用临时存储的 Pod(使用了 emptyDir 的 Pod),不加此参数命令会报错。确认数据可丢失后加上即可 。
  • —force:强制驱逐非控制器管理的 Pod(即裸 Pod)。drain 默认会保护这类 Pod,防止它们被误删后无法重建。只有当你非常清楚后果时,才使用此参数
  • —grace-period 优雅终止等待时间
  • —timeout 超时时间

移除节点

如果节点要下线,此时可以安全删除

kubectl delete node <node-name>

恢复节点

维护完成后,恢复节点可调度

kubectl uncordon <node_name>
导航