Kubernetes PriorityClass设置被忽略:单节点集群高优先级Pending Pod未调度运行问题求助
Kubernetes PriorityClass设置被忽略:单节点集群高优先级Pending Pod未调度运行问题求助
我在本地用kubeadm搭建了一个单节点K8s集群(版本1.30.3),最近遇到了一个让我困惑的问题:
我有三个处于Pending状态的Pod,它们的优先级分别是:
- Pod1,优先级值:330954640
- Pod2,优先级值:330954559
- Pod3,优先级值:330954525
这些Pod都是用同一个清单模板创建的,除了名称和绑定的PriorityClass不同,其他配置(比如镜像、CPU/内存请求等)完全一致,而且所有Pod的preemptionPolicy都设置为Never。
当集群资源只能支撑一个Pod运行时,结果是Pod2进入了Running状态,另外两个Pod依然保持Pending。按照优先级的逻辑,我本来以为优先级最高的Pod1会被优先调度运行,但实际情况完全相反。
我查了不少资料想搞清楚K8s处理Pending Pod的调度逻辑,但始终找不到优先级被忽略的原因,有没有大佬能帮忙分析下这个问题?
UPDATE:
我发现这个问题只在一种场景下出现——Pod创建后立即尝试转为Running状态的时候;如果是延迟一段时间(比如10分钟)再调度,就不会出现这个优先级失效的情况。
备注:内容来源于stack exchange,提问作者Daigo
相关产品推荐
相关产品推荐

