Kubernetes组件Scheduler

简介

主要任务是把定义好的Pod分配到集群节点上,启动后一直会监听API Server获取PodSpec.NodeName为空的Pod,对每个Pod都会创建一个binding,表明该Pod应该放到哪个节点上。

调度过程

首先是过滤掉不满足条件的节点,这个过程成为predicate;然后对通过的节点按照优先级排序,这个是priority;最后从选择优先级最高的节点(如果中间有任何一部错误直接报错)。

几种调度的策略

1.节点亲和性(pod.spec.nodeAffinity)

  • 软策略(perferredDuringSchedulingIgnoredDuringExecution):没有满足条件也可以
  • 硬策略(requiredDuringSchedulingIgnoredDuringExecution):必须满足条件,没有则挂起

                                             软策略可以和硬策略结合使用先写硬策略后写软策略

   调度策略

调度策略 匹配标签 操作符 拓扑域支持 调度目标
nodeAffinty 主机 In,NotIn,Exists,DoesNotExists,Gt,Lt 指定主机
podAffiinity POD In,NotIn,Exists,DoesNotExists Pod与指定Pod同一拓扑域
podAnitAffinity POD In,NotIn,Exists,DoesNotExists Pod与指定Pod不在同一拓扑域

eg:

    1.硬策略

    下面示例展示无论如何Pod都会运行在k8s-03节点 

    ##requiredDuringSchedulinglgnoredDuringExecution##

     查看Node标签,通过标签选择“kubernetes.io/hostname=k8s-03”

     # kubectl get nodes --show-labels

NAME     STATUS   ROLES    AGE   VERSION   LABELS
k8s-01   Ready    <none>   17d   v1.14.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-01,kubernetes.io/os=linux
k8s-02   Ready    <none

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值