k8s:scheduler

scheduler

作用:scheduler是把待调度的pod通过调度算法和调度策略绑定到某个合适的node上,并把相关信息写入etcd,然后就是kubelet通过api监听到pod事件,之后获取pod清单,下载镜像启动容器。

三要素:
待调度的pod列表
可用的node列表
调度算法

k8s默认调度器基础调度原理分两个阶段:过滤+打分

过滤阶段:
遍历所有的node,筛选出符合条件的node,把这些node加入一个集合。

筛选策略:是通过一系列的过滤器,对每个node进行过滤看其是否符合条件,比如检查磁盘、主机、可用端口、节点标签、CPU和内存资源、服务亲和性等等,筛选所有符合条件的node,然后对他们进行打分。

打分阶段:
对每个node进行打分,打分根据一系列的优选策略,然后找出得分最高的node,把pod调度到这个node上。

打分策略:打分需要检查的项,比如:
资源消耗最少
资源使用率最均衡
含有相关label
等都会被打不同分,然后挑出得分最高的node供pod调度。

原文作者:大鹏SP
版权声明:本文采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请标明作者及原文链接。
原文地址:https://www.cnblogs.com/sunpong/p/14985156.html