加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

Kubernetes的Scheduler是怎么工作的

发布时间:2023-03-06 13:54:47 所属栏目:云计算 来源:
导读:Kubernetes的scheduler是一个独立的组件,它负责监视集群中新建的未调度的Pod,根据预定义的调度策略和集群资源的可用性,选择最佳的节点进行调度。

Scheduler不会立即将Pod调度到一个节点上,而是会将Pod调度到一
Kubernetes的scheduler是一个独立的组件,它负责监视集群中新建的未调度的Pod,根据预定义的调度策略和集群资源的可用性,选择最佳的节点进行调度。

Scheduler不会立即将Pod调度到一个节点上,而是会将Pod调度到一个未绑定(unbound)状态(如果一个Pod是unbound状态,那么它的状态将被列为"Pending")。这样,kubelet就可以在后续的时间里为该Pod绑定一个节点。

下面是Kubernetes Scheduler的工作流程:

监听API Server:Kubernetes Scheduler监听API Server的调度事件,包括新建的未调度的Pod以及已调度但未运行的Pod。
获取调度信息:Scheduler通过API Server获取未调度的Pod的调度信息,包括Pod的资源需求和节点亲和性/反亲和性约束等信息。
选择节点:Scheduler使用调度算法根据节点资源的可用性和约束条件,选择最佳的节点进行调度。调度算法通常考虑节点资源的负载情况、节点和Pod的亲和性/反亲和性约束等因素。具体如下:
Scheduler的工作可以分为三个阶段:预选(preemption)、优选(prioritization)和选择(selection)。

预选阶段
在预选阶段,Scheduler会对当前集群中所有的节点进行评分,计算每个节点可以分配给待调度的Pod的资源是否足够。如果某个节点的资源不足以满足Pod的需求,那么Scheduler会尝试从该节点上迁移一些低优先级的Pod,以便为高优先级的Pod腾出足够的资源。

优选阶段
在预选阶段完成之后,Scheduler会对所有可用的节点进行优选,选出最适合待调度的Pod的节点。在这个阶段,Scheduler会为每个节点计算一个优先级值,优先级值越高的节点越有可能被选中。优选的算法可以由用户自定义,Kubernetes提供了一些默认的算法。

选择阶段
在优选阶段完成之后,Scheduler会将Pod绑定到被选中的节点上,完成Pod的调度工作。如果调度失败,Scheduler会继续尝试调度,直到成功为止。

总体来说,Scheduler的工作流程可以用以下几个步骤概括:

获取所有待调度的Pod
针对每个Pod进行预选操作,以确定是否需要迁移其他Pod来释放资源
针对每个Pod进行优选操作,以确定最适合的节点
将Pod绑定到被选中的节点上
4.更新Pod状态:Scheduler将调度好的Pod的信息更新到API Server中,同时将Pod的调度信息发送到kubelet,让kubelet启动Pod所在的容器。

Kubernetes的Scheduler是一个高度可扩展的系统,用户可以自定义调度算法和插件来满足自己的需求。

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章