从零开始入门 K8s | Kubernetes 调度和资源管理( 七 )

此时 ApiServer 会先把这个待创建的请求路由给我们的 webhook Controllers 进行校验 。

通过校验之后 , ApiServer 会在集群里面生成一个 pod , 此时生成的 pod , 它的 nodeName 是空的 , 并且它的 phase 是 Pending 状态 。 在生成了这个 pod 之后 , kube-Scheduler 以及 kubelet 都能 watch 到这个 pod 的生成事件 , kube-Scheduler 发现这个 pod 的 nodeName 是空的之后 , 会认为这个 pod 是处于未调度状态 。

接下来 , 它会把这个 pod 拿到自己里面进行调度 , 通过一系列的调度算法 , 包括一系列的过滤和打分的算法后 , Schedule 会选出一台最合适的节点 , 并且把这一台节点的名称绑定在这个 pod 的 spec 上 , 完成一次调度的过程 。

此时我们发现 , pod 的 spec 上 , nodeName 已经更新成了 Node1 这个 node , 更新完 nodeName 之后 , 在 Node1 上的这台 kubelet 会 watch 到这个 pod 是属于自己节点上的一个 pod 。

推荐阅读