kubernetes的调度过程
kubernetes的调度过程简单而言,就是将颇多创建并调度到合适的node节点上去。
1. 首先是一个Yaml的文件
如图所示,和之前提到的是一样的,我们先讲整个的k8s集群的图表示出来,上方是master节点,下面是nobe的节点。master的节点主要是有api-server,controller 和 scheduler三个部分。
当我们给定一个Yaml 文件时,它以最小单位 Pod 发送给 api-server 访问端口。
2. API-server 把 pod 申请传递给 controllers
API-server会把pod的创建请求发送给controllers,让controller审核

3. 审核通过以后,再交付给 API-server
生成pod以后,此时的 pod 的node name是空的,状态时pending,也就是说,虽然生成了,但是还没有被分配到合适的node节点上。

4. 将 pod 文件发送到 scheduler 调度
scheduler根据一系列算法,包括资源的容纳量,亲和度等因素,给pod文件分配 node 节点消息。

5. 调度器找到合适节点,返回到 API-server上,并更新 pod 状态
此时的 pod 的状态没变,仍然在等候之中,但它的node信息已被更新。

6. 节点上的kubelet感应到pod,将其拉到自己的node上部署
给 pod 配置资源,更新状态为 running

本文详细介绍了Kubernetes的调度过程,包括从Yaml文件创建Pod,到Scheduler选择合适的Node节点。重点讨论了资源调度,如满足Pod的资源需求、QoS策略以及Pod亲和度和Node亲和度的配置。同时,提到了高级调度策略,如优先级和抢占机制,确保集群资源的高效利用。
最低0.47元/天 解锁文章
20

被折叠的 条评论
为什么被折叠?



