K8s已配置污点容忍度的Pod为何持续处于Pending状态最终被驱逐
问题根因
你的Pod YAML配置中显式指定了nodeName: k8s-master-2,该字段优先级高于节点亲和规则、污点容忍调度逻辑,会直接绕过Kubernetes默认调度器,强制要求Pod运行在k8s-master-2节点上:
- 你的Pod仅配置了
dedicated=devs:NoSchedule的污点容忍,未适配master节点默认的node-role.kubernetes.io/master:NoSchedule等污点规则,无法在k8s-master-2节点上正常启动,因此持续处于Pending状态 - Pod长时间无法正常启动,触发Kubernetes默认的Pod生命周期驱逐逻辑,最终被系统自动删除
修复方案
删除YAML配置中的nodeName: k8s-master-2行即可,调度器会按照你预先配置的节点亲和规则、污点容忍规则,自动将Pod调度到符合要求的k8s-worker-2节点运行。
内容的提问来源于stack exchange,提问作者Mekky_Mayata
相关产品推荐
相关产品推荐

