Kubernetes中处理Pod调度延迟的常见方法包括检查节点资源是否充足、调整Pod的优先级/抢占设置、优化节点选择器(nodeSelector)或亲和性(affinity)规则、检查污点(taint)与容忍(toleration)配置等。若调度器性能不足,可考虑横向扩展kube-scheduler实例。
延伸知识点:节点亲和性(Node Affinity) 节点亲和性允许定义Pod被调度到特定节点的硬性要求或软性偏好。其核心配置参数分为两种类型:
-
requiredDuringSchedulingIgnoredDuringExecution(硬性要求):必须满足的条件,如 nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms:
- matchExpressions:
- key: gpu-type operator: In values: [a100]
- matchExpressions:
-
preferredDuringSchedulingIgnoredDuringExecution(软性偏好):带权重的优先条件,如 preferredDuringSchedulingIgnoredDuringExecution:
- weight: 80 preference: matchExpressions:
- key: ssd operator: Exists
权重范围1-100,多个偏好条件时会进行综合评分。合理使用节点亲和性可以显著减少调度器计算时间,特别是在具有异构硬件的大规模集群中,通过预定义硬件标签能快速匹配目标节点。实际应用中需注意:1) 确保节点标签准确更新 2) 避免过多重叠规则导致调度冲突 3) 结合Pod间亲和性(podAffinity)实现拓扑约束。