189 8069 5689

Kubernetes的Scheduler是什么

这篇文章主要讲解了“Kubernetes的Scheduler是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes的Scheduler是什么”吧!

公司主营业务:成都网站制作、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出那曲免费做网站回馈大家。

调度流程

kube-scheduler 是 kubernetes 的调度器,它的主要作用就是根据特定的调度算法和调度策略将Pod调度到合适的Node 节点上去,是一个独立的二进制程序,启动之后会一直监听APIServer,获取到PodSpec.NodeName 为空的 Pod,对每个 Pod 都会创建一个 binding。

Predicates

Predicates 阶段首先遍历全部节点,过滤掉不满足条件的节点,属于强制性规则,这一阶段输出的所有满足要求的 Node 将被记录并作为第二阶段的输入,如果所有的节点都不满 足条件,那么Pod将会一直处于Pending状态,直到有节点满足条件,在这期间调度器会不断的重试。

Priorities

Priorities 阶段即再次对节点进行筛选,如果有多个节点都满足条件的话,那么系统会按 照节点的优先级(priorites)大小对节点进行排序,最后选择优先级最高的节点来部署 Pod 应用。

LeastRequestedPriority:通过计算 CPU 和内存的使用率来决定权重,使用率越低权重越 高,当然正常肯定也是资源是使用率越低权重越高,能给别的 Pod 运行的可能性就越大

SelectorSpreadPriority:为了更好的高可用,对同属于一个 Deployment 或者 RC 下面 的多个 Pod 副本,尽量调度到多个不同的节点上,当一个 Pod 被调度的时候,会先去查 找该 Pod 对应的 controller,然后查看该 controller 下面的已存在的 Pod,运行 Pod 越少的节点权重越高

ImageLocalityPriority:就是如果在某个节点上已经有要使用的镜像节点了,镜像总大小 值越大,权重就越高

NodeAffinityPriority:这个就是根据节点的亲和性来计算一个权重值,后面我们会详细 讲解亲和性的使用方法

节点调度亲和性

节点硬亲和性

requiredDuringSchedulingIgnoredDuringExecution

方式一:Pod 使用 spec.nodeSelector (基于等值关系)

方式二:Pod 使用 spec.affinity 支持 matchExpressions 属性 (复杂标签选择机制)

节点软亲和性

柔性控制逻辑,当条件不满足时,能接受被编排于其他不符合条件的节点之上 权重 weight 定义优先级,1-100 值越大优先级越高

污点和容忍度

污点 taints 是定义在节点上的键值型属性数据,用于让节点拒绝将 Pod 调度运行于其上,

除非 Pod 有接纳节点污点的容忍度容忍度 tolerations 是定义在 Pod 上的键值属性数据,

用于配置可容忍的污点,且调度器将 Pod 调度至其能容忍该节点污点的节点上或没有污点

的节点上

使用 PodToleratesNodeTaints 预选策略和 TaintTolerationPriority 优选函数完成该机

节点亲和性使得 Pod 对象被吸引到一类特定的节点 (nodeSelector 和 affinity)

污点提供让节点排斥特定 Pod 对象的能力

(1)定义污点和容忍度

污点定义于 nodes.spec.taints 容忍度定义于 pods.spec.tolerations

语法: key=value:effect

(2)effect 定义排斥等级:

NoSchedule,不能容忍,但仅影响调度过程,已调度上去的 pod 不受影响,仅对新增加的

pod 生效。

PreferNoSchedule,柔性约束,节点现存 Pod 不受影响,如果实在是没有符合的节点,也

可以调度上来

NoExecute,不能容忍,当污点变动时,Pod 对象会被驱逐

(3)在 Pod 上定义容忍度时:等值比较 容忍度与污点在 key、value、effect 三者完全匹配

存在性判断 key、effect 完全匹配,value 使用空值

一个节点可配置多个污点,一个 Pod 也可有多个容忍度

感谢各位的阅读,以上就是“Kubernetes的Scheduler是什么”的内容了,经过本文的学习后,相信大家对Kubernetes的Scheduler是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享文章:Kubernetes的Scheduler是什么
转载来于:http://cdxtjz.cn/article/gipojc.html

其他资讯