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