k8s调度的预选策略及优选函数

网友投稿 272 2022-09-12

k8s调度的预选策略及优选函数

scheduler调度过程:    Predicate(预选)-->Priority(优选)-->Select(选定)调度方式:    1.节点亲和性调度(NodeAffinity)使用nodeSelector完成这类调度。    2.Pod亲和性和反亲和性调度(PodAffinity、PodUnAffinity)。    3.污点、污点容忍调度。节点上(Taints污点)、Pod上(Tolerations容忍度)。参考:预选策略: 优选函数: CheckNodeCondition:检查节点条件。是否可以在节点上的磁盘、网络不可用或未准备好的前提下把Pod调度到此节点。    GeneralPredicates:通用预选策略,包含多种策略:        HostName:检查Pod对象是否定义pod.spec.hostname        PodFitsHostPort:检查Pod对象是否定义pod.spec.containers.ports.hostPort        MatchNodeSelector:pods.spec.nodeSelector        PodFitsResources:检查Pod的资源需求是否能被节点所满足。    NoDiskConflict: 检查Pod依赖的存储卷能否能满足需求。    PodToleratesNodeTaints:检查Pod上的spec.tolerations可容忍的污点是否完全包含节点上的污点。    PodToleratesNodeNoExecuteTaints:Pod允许节点不执行污染;默认不启用。    CheckNodeLabelPresence:检查节点标签;默认不启用    CheckserviceAffinity:检查服务亲和性。默认不启用        MaxEBSVolumeCount:亚马逊弹性存储卷最大数量,默认39    MaxGCEPDVolumeCount:谷歌容器引擎最大存储卷数量,默认16    MaxAzureDiskVolumeCount:Azure最大磁盘数量,默认16        CheckVolumeBinding:检查数据卷绑定    NoVolumeZoneConflict:没有数据卷空间冲突    CheckNodeMemoryPressure:定义检查节点内存压力名称    CheckNodePIDPressure:定义检查节点PID压力的名称    CheckNodeDiskPressure:定义检查节点磁盘压力的名称        MatchInterPodAffinity:定义匹配POD间关联的名称优选函数:(几种常见的优选函数)    LeastRequested:        (cpu(capacity-sum(requested))*10/capacity)+(memory(capacity-sum(requested))*10/capacity)/2    BalancedResourceAllocation:        CPU和内存资源的被占用率相近的胜出;目的是平衡节点资源的使用率。    NodePreferAvoidPods:        节点注解信息"scheduler.alpha.kubernetes.io/preferAvoidPods"    TaintToleration:        将Pod对象的spec.tolerations与节点的taints列表项进行匹配度检查,匹配的条目越多得分越低。    SelectorSpreading:调度器将pod分散调度。    InterPodAffinity:根据Pod间的亲和性。    NodeAffinity:根据节点亲和性。    MostRequested:根据最多被请求的节点。    NodeLabel:根据节点标签    ImageLocality:        根据满足当前Pod对象需求的已有镜像的体积大小之和。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:广告文案:被快手破防了!
下一篇:休克文案:肯德基入戏了!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~