删除节点 & 维护
更新时间: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>
