20-21 调度器,预选策略及优选策略。以及高级调度方式

20-21 调度器,预选策略及优选策略。以及高级调度方式

Scheduler
调度过程:
预选过程 predicate
优选策略 priority
选定 select

节点亲和性调度
反亲和性

调度器:
预选策略:
CheckNodeCondition
GeneralPredicates
HostName: 检查pod对象是否定义了pod.spec.hostname
PodFitsHostPorts: pods.spec.containers.ports.hostPort
MatchNodeSelector: pods.spec.nodeSelector
PodFitsResources: 检查Pod资源需求能否被节点满足
kubectl describe node k8s-node1
NoDiskConflict 检查节点是否有合适的能满足pod依赖的存储卷
PodtoleratesNodeTaints: 检查pod上的tolerations可容忍的污点是否完全包含节点上的污点
PodToleratesNodeNoExecuteTains 默认没有启用
CheckNodeLabelPresence 检查标签的存在性 默认没有启用
CheckServiceAffinity 默认没有启用

    MaxEBSVolumeCount
    MaxGCEPDVolumeCount
    MaxAzureDiskVolumeCount
    
    CheckVolumeBinding
    NovolumeZoneConflict
    
    CheckNodeMemoryPressure   检查节点内存资源是否存在压力
    CheckNodePIDpressure   检查节点PID资源是否存在压力
    CheckNodeDiskPressure 检查节点磁盘是否存在压力
    
    MatchInterPodAffity 

优选函数
LeastRequested:
(cpu((capacity-sum(requested))*10/capacity)

BalancedResourceAllocation
    CPU和内存资源被占用率相近的胜出
NodePreferAvoidPods
    节点注解信息“scheduler.alpha.kubernetes.io/preferAvoidPods”
    
TaintToleration:  将Pod对象的spec.tolerations 与节点的taints列表项进行匹配度检查,匹配的条目越多,得分越低

SelectorSpreading: 与当前pod对象同属的标签选择器,匹配度越高得分越低

InterPodAffinity

NodeAffinity 节点亲和性

MostRequested

NodeLabel

ImageLocality: 根据已有镜像的体积大小之和

高级调度设置:

节点选择器: nodeSelector
节点亲和调度:nodeAffinity
kubectl explain pods.spec.affinity.nodeAffinity

preferredDuringSchedulingIgnoredDuringExecution  软亲和性,如果能满足最好,如果实在不满足,也可以
requiredDuringSchedulingIgnoredDuringExecution   硬亲和性,必须要满足才行

taint的effect定义对pod的排斥效果:
NoSchedule 仅影响调度过程
NoExecute 既影响调度过程也影响现存的Pod对象;不容忍的Pod对象将比驱逐
PreferNoSchedule 不容忍的如果没有其他的选择那么也就可以被保留

污点调度 taint: 给节点那些pod能被调度,一般用在节点上,也是一种键值属性, taints

Tolerrations 容忍度

admin Abc.1234

原文地址:https://www.cnblogs.com/heaven-xi/p/11312637.html