首页/云/Kubernetes 速查/节点维护标准流程
集群运维与排障54 条

节点维护标准流程

维护一次节点按固定顺序:确认冗余 → cordon → drain → 维护/重启 → 恢复调度 → 验证业务,缺一步都可能扩大影响。

Kubernetes 速查云更新于 2026-10-13

流程定位

节点维护看起来只是重启机器,实际是一套固定顺序:确认冗余与容量,cordon 阻止新调度,drain 迁移负载,执行维护(系统更新、内核升级、硬件检查),uncordon 恢复调度,最后核对 Pod 分布与业务指标。适用平台是 Kubernetes。缺任何一步都可能把局部维护扩大成全局故障,尤其是跳过冗余确认直接排水这一步。

基本信息

适用平台Kubernetes,节点级运维流程
核心命令cordon、drain、uncordon,配合 get pods -o wide 核对分布
前置条件业务副本冗余足够、PDB 允许中断、无本地卷独占工作负载
验证项维护后节点 Ready、组件健康、业务指标与容量回到基线

典型使用场景

  • 系统补丁与内核升级:需要重启节点前的标准动作
  • 硬件维护:换内存、加磁盘前的例行清空
  • 节点池换代:旧机型逐步退役、新机型接替
  • 故障排查:怀疑节点侧问题时先清空再复现,避免影响业务
  • 演练与文档:把流程固化成检查单,降低交接成本

流程命令

流程命令
kubectl get pods -A -o wide --field-selector spec.nodeName=node1   # 1 盘点受影响负载
kubectl get pdb -A && kubectl get nodes -o wide                    # 2 确认冗余与容量
kubectl cordon node1                                               # 3 禁止新调度
kubectl drain node1 --ignore-daemonsets --delete-emptydir-data      # 4 优雅迁移
# ... 节点维护:系统更新、重启 kubelet 与容器运行时 ...
kubectl uncordon node1                                             # 5 恢复调度
kubectl get pods -A -o wide --field-selector spec.nodeName=node1    # 6 复核落点

检查单

阶段确认项不通过时的处理
准备业务副本冗余与节点剩余容量先扩副本或错峰维护
准备PDB 的 allowed disruptions必要时临时放宽并记录
执行drain 是否顺利结束有卡住的 Pod 先查原因再重试
恢复节点回到 Ready查 kubelet 与运行时状态
复核Pod 分布与业务指标回到基线与维护前对照
维护前确认:业务副本冗余够吗、PDB 会不会阻塞、本地卷的工作负载可否迁移、监控与日志代理是否仍覆盖该节点。
维护后不要只看节点 Ready:还要确认业务侧的副本数、延迟与错误率回到基线,容器运行时与 CNI 是否正常启动。

易错点

  • 先 drain 后 cordon(或只 drain 不看结果):排水与不可调度要配合,中间失败要停手而不是继续往下走
  • 维护后不复核 Pod 分布:缩容回填与调度偏好可能让负载分布与之前不同,需要确认没有集中到少数节点
  • 忽略 DaemonSet 的影响:日志与网络代理不会被 drain 带走,维护期间这些能力会随节点一起中断
  • 在业务高峰做节点维护:即使冗余充足,容量余量变小时个别节点故障也可能触发连锁问题

数据来源与参考

  • Kubernetes 官方文档 · 节点维护与安全驱逐
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌