美文网首页
k8s sheduler的简单理解

k8s sheduler的简单理解

作者: Wu杰语 | 来源:发表于2021-07-22 18:17 被阅读0次

    k8s是云时代的“操作系统”,对于k8s的理解,我们可以对照操作系统来学习理解。本篇我们对schduler组件进行简单理解。

    Scheduler

    先看一下k8s的部署图


    k8s部署图

    要理解的组件是Scheduler组件。

    scheduler组件干啥的,顾名思义,这是一个调度器。和操作系统比较一下,操作系统的调度器有哪些关节概念:

    • 调度进程
    • 进程有优先级
    • 分为抢占式调度和非抢占式调度。

    下面我们对比一下。

    k8s调度对象

    操作系统调度的对象是进程,k8s调度的是什么呢,是Pod,Pod是k8s的最小调度对象。

    进程中有占用的代码段、数据段、堆、进程指针等关键信息,Pod中的关键信息是什么。

    
    apiVersion: v1
    kind: Pod
    metadata:
      name: frontend
    spec:
      containers:
      - name: test
        image: test
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"
    

    如上Pod描述,关心的是cpu和memory,cpu是可压缩资源,memory是不可压缩资源,可压缩资源不够只会饥饿不会挂,不可压缩资源不够会挂掉。

    其中limits对应的是操作系统底层的Cgroups 的 cpu.cfs_quota_us和memory.limit_in_bytes,request对应的是操作系统底层的cpu.shares。

    k8s调度过程
    k8s调度过程
    • 当通过apiServer提交了各种调度api对象到Etcd后,infomer会把需要调度的api对象从Etcd中取出,放入Priority Queue中。
    • 在Scheduler Cache中缓存了集群相关信息, 调度器从Priority Queue中取出待调度api对象,从Scheduler Cache中取出集群节点信息,经过Predicates算法过滤出符合要求的Node信息,这里的要求就是Node可使用的cpu和memery是否满足Pod中的request的要求。Predictes 过滤有GeneralPredicates、Volume、宿主机、Pod等过滤规则。
    • Priorities对过滤出的Node进行优先级筛选,选出最佳的Node。注意这里的Priorities是指一个模块组件而不是Pod的优先级。
    • 当找到节点后,就把api对象和Node绑定起来,并更新相关的信息到Scheduler Cache和Etcd。
    Pod的优先级

    Pod的优先级是怎么定义的呢?见如下资源定义:

    
    apiVersion: scheduling.k8s.io/v1beta1
    kind: PriorityClass
    metadata:
      name: high-priority
    value: 1000000
    globalDefault: false
    description: "This priority class should be used for high priority service pods only."
    

    k8s默认的优先级最大值就是1000000。优先级越高,在上述k8s调度图中,该api对象会排在PriorityQueue的前面,会优先被调度。相比于操作系统的优先级定义,这里的优先级定义更加简单直接。

    抢占式调度

    和操作系统的占式调度相比,k8s的抢占式调度也是一样的,所不同的是,为了让高优先级的Pod调度成功,需要将低优先级的Pod给delete掉。

    小结

    k8s是云时代的“操作系统”是一个很好的比喻,既说明了k8s的价值,有说明了k8s的运转和操作系统类似。对于Scheduler的理解更加印证了这一点。

    相关文章

      网友评论

          本文标题:k8s sheduler的简单理解

          本文链接:https://www.haomeiwen.com/subject/rncymltx.html