来自《kubernetes源码剖析》
CheckNodeConditionPred | 检测节点是否处于就绪截断 |
GeneralPred | 检查节点上pod资源对象数量的上线,以及CPU 内存 GPU等资源是否符合要求 |
NoDiskConflictPred | 检查当前pod资源对象使用的卷是否与节点上其他的pod资源对象使用的卷冲突 |
PodToleratesNodeTaintsPred | 如果当前节点被标记为taints,检查pod资源对象是否能容忍node taints |
MaxCSIVolumeCounPred | 如果设置了featuregate (attachvolumelimit)功能,检查pod资源对象挂载的csi卷是否超出了节点上卷的最大挂载数量 |
CheckVolumeBindingPred | 检查节点是否满足pod资源对象的pvc挂载需求 |
NoVolumeZoneConflicPred | 检查pod资源对象挂载pvc是否属于跨区域挂载,因为gce的pd存储或aws的ebs卷都不支持跨区域挂载 |
CheckNodeMemoryPressurePred | 检查pod资源对象是否可以调度到merory pressure 可使用内存过低 的节点上 |
CheekNodePIDPressurePred | 检查pod资源对象是否可以调度pidpressure(可使用的pid数量过低)的节点上 |
CheckNodeDiskPressurePred | 检查pod资源对象是否可以调度到disk pressure (i/o压力大)的节点上 |
MatchInterPodAffinityPred | 检查pod资源对象与其他pod资源对象是否符合亲和性规则 |
其中部分已经弃用例如 MaxEBSVolumeCountPred MaxGCEPDVolumeCountPred MaxAzureDiskVolumeCountPred 等预选调度算法
SelectorSpreadPriority | 将属于相同service rcs rss sts 的pod尽量调度在不同的节点上 | 1 |
InterPodAffinityPriority | 基于亲和性(affinity)和反亲和性(anti-affinity)计算分数 | 1 |
LeastRequestdPriority | 计算pod资源对象所需的cpu和内存占当前节点可用资源百分比,百分比最小的节点最优 | 1 |
BalancedRequestdPriority | 计算节点上cpu和内存的使用率,使用率最均衡的节点最优 | 1 |
NodePreferAvoidPodsPriority | 基于节点上定义的注释(annotaion)记分,注释中如果定义了alpha.kubernetes.io/preferAvoidPods则会禁用ReplicationController或者将ReplicaSet的pod资源对象调度在该节点上 | 1000 |
NodeAffinityPriority | 基于节点亲和性计算分数 | 1 |
TaintTolerationPriority | 基于污点(taint)和容忍度(toleration)是否匹配计算分数 | 1 |
ImageLocalityPriority | 基于节点上是否已经下拉了运行pod资源对象的镜像计算分数 | 1 |