kubernetes中的Scheduler原理是什么

89次阅读
没有评论

本篇文章为大家展示了 kubernetes 中的 Scheduler 原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一:简介
kubernetes 中的 Scheduler 原理是什么

1.Kubernetes  scheduler 在整个系统中承担了“承上启下”的重要功能,“承上”是指它负责接收 Controller Manager 创新的新 Pod, 为其安排一个落脚的 Node;  启下 是指安置工作完成后,目标 Node 上的 kubelet 服务进程接管后继工作。

2.Kubernetes scheduler 的作用是将待调度的 Pod, 按照特定的调度算法和调度策略绑定到集群中的某个合适的 Node 上,并将绑定信息写入 etcd 中,在整个调度过程中涉及三个对象,分别是:待调度 Pod 列表,可用 Node 列表,以及调度算法和策略。

3. 目标节点上的 kubelet 通过 API Server 监听到 Kubernetes scheduler 产生的 Pod 绑定事件,然后获取对应的 Pod 清单,下载 Image 镜像,并启动容器。

二:调度流程

1. 预先调度过程,即遍历所有目标 Node, 筛选出符合要求的候选节点。

2. 确定最优节点,在第 1 步的基础上,采用优选策略计算出每个候选节点的积分,积分最高者胜出。

三:预选策略

1. NoDiskConflict
判断备选 Pod 的 gcePersistentDisk 或 AWSElasticBlockStore 和备选的节点中已存在的 Pod 是否存在冲突。

2.PodFitsResources
判断备选节点的资源是否满足备选 Pod 的需求。

3.PodSelectorMathes
判断备选节点是否包含备选 Pod 的标签选择器指定的标签。

4.PodFitsHost
判断备选 Pod 的 spec.nodeName 域所指定的节点名称和备选节点的名称是否一致。如果一致,则返回 true, 否则返回 false.

5.CheckNodeLabelPresence
如果用户在配置文件中指定了该策略,则 scheduler 会通过 RegisterCustomFitPredicate 方法注册该策略。

6.CheckServiceAffinity
该策略用于判断备选节点是否包含策略指定的标签,或包含和备选 Pod 在相同 Service 和 Namespace 下的 Pod 所在节点的标签列表。如果存在,则返回 true, 否则返回 false.

7.PodFitsPorts

判断备选 Pod 所用的端口列表中的端口是否在被选中已被占用,如果被占用则返回 false,否则返回 true

四:优选策略

1.LeastRequestedPriority
从备选节点列表中选出资源消耗最小的节点。

2.CalculateNodeLabelPriority
该策略用于判断策略列出的标签在备选节点中存在时,是否选择该备选节点。

3.BalancedResourceAllocation
从备选节点列表中选出各项资源使用率最均衡的节点。

上述内容就是 kubernetes 中的 Scheduler 原理是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。