k8s的调度流程

  • Post author:
  • Post category:其他


理解一下 k8s的调度。首先,明白一件事,我们使用k8s基本上都是基于 yaml文件来的,这个过程像极了伸手给妈妈要钱。

妈,我想买乐高。

妈,我想吃冰淇淋。

yaml就像是一个伸手的过程。剩下的事交给大人操心。



# #  简单了解一下k8s的架构

下边的图是一个k8s的集群架构。其实这个图有点不合适,不合适的点在于橙色的圈,此时不能代表一个Pod,应该是一个 yaml,它即将会成为一个 Pod,但是现在还不是。



# # 接下来开始调度k8s调度过程

基于上上边的架构图,开始

第一步,将这个申请yaml交给 apiServer


第二步:对这个yaml进行校验,看有没有什么错误,所以到了controller

第三步:校

验通过后,会创建出来一个 Pod

。 pod放在ApiServer ,但此时生成的 pod,它的

nodeName 是空的

,并且它的 phase 是 Pending 状态。在生成了这个 pod 之后,

kube-Scheduler

以及

kubelet

都能

watch

到这个 pod 的生成事件,

kube-Scheduler

发现这个 pod 的 nodeName 是空的之后,会认为这个 pod 是处于未调度状态。

第四步:

就是schedule根据算法,来选择一个node,去完成调度

。吧这个pod 给node去处理。此时前边创建的这个Pod没有nodeName,现在被分配了以后,就有名字了。这个举个栗子:旺财家里比较空闲,一直想在家里样一只狗,所以在宠物所登记,说它可以养一直狗在家里 ,如果碰到合适的就联系他。二哈是一只狗,它被生出来,然后没有主人,然后被人领养了,在被领养以后,也有了主人的名字,叫旺财。

此时,二哈有了它的去处,所以一个领养的过程就结束了。



版权声明:本文为star1210644725原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。