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