预选算法与优选调度算法

来自《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

猜你喜欢

转载自blog.csdn.net/weixin_45413603/article/details/107633591