scheduler调度过程:
    Predicate(预选)-->Priority(优选)-->Select(选定)
调度方式:
    1.节点亲和性调度(NodeAffinity)使用nodeSelector完成这类调度。
    2.Pod亲和性和反亲和性调度(PodAffinity、PodUnAffinity)。
    3.污点、污点容忍调度。节点上(Taints污点)、Pod上(Tolerations容忍度)。
参考:
预选策略:https://github.com/kubernetes/kubernetes/tree/master/pkg/scheduler/algorithm/predicates    
优选函数:https://github.com/kubernetes/kubernetes/tree/master/pkg/scheduler/algorithm/priorities

预选策略:(几种常用的预选策略)
    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对象需求的已有镜像的体积大小之和。

k8s调度的预选策略及优选函数的更多相关文章

  1. 05-k8s调度器、预选策略、优选函数

    目录 k8s调度器.预选策略.优选函数 节点选择过程 调度器 预选策略 优选函数 高级调度设置机制 node选择器/node亲和调度 pod亲和性 污点调度 Taints 与 Tolerations ...

  2. k8s之调度器、预选策略及优选函数

    1.调度器(scheduler) 调度器的功能是调度Pod在哪个Node上运行,这些调度信息存储在master上的etcd里面,能够和etcd打交道的只有apiserver; kubelet运行在no ...

  3. K8S 调度器,预选策略,优选函数

    Kubernetes Scheduler 提供的调度流程分三步: 预选策略(predicate) 遍历nodelist,选择出符合要求的候选节点,Kubernetes内置了多种预选规则供用户选择. 优 ...

  4. K8s预选策略和优选函数简介

    调度器选择策略: 预选策略(Predicate) 1. 根据运行Pod的资源限制来排除不符合要求的Node 2. 根据运行Pod时,是否要求共享宿主机的网络名称空间来判断,如: 某Pod启动要共享宿主 ...

  5. Kubernetes 学习20调度器,预选策略及优选函数

    一.概述 1.k8s集群中能运行pod资源的其实就是我们所谓的节点,也称为工作节点.master从本质上来讲,他其实是运行整个集群的控制平面组件的比如apiserver,scheal,controlm ...

  6. k8s-调度器、预选策略及优选函数-二十

    一.简介 master上运行着三个最核心的组件,apiserver.scheduler.controller manager.此外,master还依赖于ectd存储节点,最好ectd是有冗余能力的集群 ...

  7. k8s调度器、预选策略及调度方式

    一.k8s调度流程 1.(预选)先排除完全不符合pod运行要求的节点2.(优先)根据一系列算法,算出node的得分,最高没有相同的,就直接选择3.上一步有相同的话,就随机选一个 二.调度方式 1.no ...

  8. 7.k8s.调度器scheduler 亲和性、污点

    #k8s. 调度器scheduler 亲和性.污点 默认调度过程:预选 Predicates (过滤节点) --> 优选 Priorities(优先级排序) --> 优先级最高节点 实际使 ...

  9. 图解kubernetes调度器预选设计实现学习

    Scheduler中在进行node选举的时候会首先进行一轮预选流程,即从当前集群中选择一批node节点,本文主要分析k8s在预选流程上一些优秀的筛选设计思想,欢迎大佬们指正 1. 基础设计 1.1 预 ...

随机推荐

  1. CC17:猫狗收容所

    题目 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的. 给定一 ...

  2. 项目模板eShopOnContainers

    .NET Core多平台项目模板eShopOnContainers编译手记   之前写了一个功能性的文件上传asp.net core的小程序,加上点七七八八的东西,勉强能够应付了,打算学习一下微软的官 ...

  3. Windows7&IIS7.5部署Discuz全攻略

    组长说在内网部署一个论坛,这可难不倒我,装个Discuz嘛.部署环境就一台普通的PC,四核i3,Windows7.这就开搞了. 准备工作 系统是Windows 7 专业版,自带IIS7.5(家庭版不带 ...

  4. tyvj P4879骰子游戏-美国70分

    需要FFT优化... #include<iostream> #include<cstdio> #include<queue> #include<vector& ...

  5. 使用gulp-uncss精简css,去除冗余代码

    写html页面的时候,多修改几次就会出现很多无用的css代码,下面使用gulp-uncss来精简css文件,去掉没用的css代码 1.首先找个目录创建一个gulp项目在命令行输入:npm init   ...

  6. If people in the communications only think about gains and losses of interest, then the pleasure of knowing each other will cease to exist.

    If people in the communications only think about gains and losses of interest, then the pleasure of ...

  7. Object-C反射读取实体属性和值

    举例: 首先定义TestModel如下: @interface TestModel : NSObject @property (nonatomic, strong) NSString *name; @ ...

  8. Wireshark漫谈(一)

    可能有人会说,一个软件的安装有什么好谈的,无非就是"同意,同意,同意......是,是,是"诸如此类的选项.的确,Wireshark软件的安装步骤是挺简单的,不过本文不是想谈安装步 ...

  9. Hadoop 2.7.0模拟分布式实验环境搭建[亲测]

    实验目的: 本实验通过在PC电脑上同时运行3个虚拟机,一个为master节点,两个slave节点.    搭建环境: 主机:mac os 10.10   OS:CenOS 6.5 虚拟机:VMware ...

  10. HDU 3709 Balanced Number (数位DP)

    题意: 找出区间内平衡数的个数,所谓的平衡数,就是以这个数字的某一位为支点,另外两边的数字大小乘以力矩之和相等,即为平衡数. 思路: 一开始以为需要枚举位数,枚举前缀和,枚举后缀和,一旦枚举起来就会M ...