Kubernetes的Scheduler是如何工作的

Kubernetes的scheduler是如何工作的

作者:浩仔浩仔 2023-03-06 00:27:02

云计算

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

创新互联是一家集网站建设,费县企业网站建设,费县品牌网站建设,网站定制,费县网站建设报价,网络营销,网络优化,费县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

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

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

下面是Kubernetes Scheduler的工作流程:

  1. 监听API Server:Kubernetes Scheduler监听API Server的调度事件,包括新建的未调度的Pod以及已调度但未运行的Pod。
  2. 获取调度信息:Scheduler通过API Server获取未调度的Pod的调度信息,包括Pod的资源需求和节点亲和性/反亲和性约束等信息。
  3. 选择节点: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是一个高度可扩展的系统,用户可以自定义调度算法和插件来满足自己的需求。

当前标题:Kubernetes的Scheduler是如何工作的
网页URL:http://www.gawzjz.com/qtweb2/news10/6960.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联