nodeSelector 将新Pod持续调度到这些 NotReady 节点
将两个问题结合起来,就构成了您所描述的完整故障链:
不规范下线导致节点 NotReady -> nodeSelector 将新Pod持续调度到这些 NotReady 节点 -> Pod永远 Pending -> Deployment控制器为达成目标,陷入“创建-删除-替换”的无限循环 -> 循环产生海量etcd写入,最终压垮控制平面。
因此,您的原始描述在技术上是准确且深刻的。要预防此类问题,除了规范下线节点,还可以考虑使用 nodeAffinity 配合 requiredDuringSchedulingIgnoredDuringExecution(这仍然是静态调度,无法动态避让NotReady节点),或者更高级地,使用自定义调度策略或 Pod拓扑分布约束来避免将Pod集中到少数节点,并确保应用有明确的 Pod中断预算 和 健康检查。
时来天地皆同力,运去英雄不自由
浙公网安备 33010602011771号