维护前检查:确认节点状态与工作负载
在进行任何节点维护操作之前,全面评估目标节点及其承载的工作负载是保障业务连续性的关键第一步。首先,使用 kubectl get nodes 查看节点整体状态,确认其处于 Ready 状态且无异常事件。接着,通过 kubectl get pods --field-selector spec.nodeName=

执行 cordon:停止节点接收新 Pod
cordon 操作的核心作用是将目标节点标记为不可调度(Unschedulable),从而阻止 Kubernetes 调度器将新的 Pod 分配到该节点上。需要明确的是,cordon 仅影响未来的调度决策,绝不会删除或驱逐节点上已经运行的 Pod,现有业务流量不会因此中断。执行命令非常简单:kubectl cordon
执行 drain:安全驱逐节点上的 Pod
drain 命令是 Kubernetes 节点维护的核心环节,其工作流分为两步:首先自动将节点标记为不可调度(若未提前 cordon),随后通过 Kubernetes Eviction API 安全地驱逐节点上的工作负载。基础命令为 kubectl drain

维护后恢复:验证节点并执行 uncordon
当 drain 命令成功执行且节点上所有可驱逐的 Pod 均已安全迁移至其他节点后,方可开始实际的硬件维护、内核升级或配置变更。维护工作彻底完成后,必须将节点重新纳入集群调度池,此时需执行 kubectl uncordon

