k8s 调度是比较核心的功能,由多个组件合作完成。
用户创建 pod 对象后,先会进入 pending 状态,等待调度器调度。
- kube-scheduler watch 到新建的 Pod
- kube-scheduler 调用 scheduleOne 进行具体调度
- predict 筛选满足 scheduler 配置的调度算法的条件的节点
- 如果 Pod 配置了持久化,kube controller manager 调用 AssumePodVolumes 校验节点是否满足 pvc 指定的持久化条件
- 遍历上述筛选出的节点,打分,排序
- kube controller manager 中的 scheduler binder 组件调用 BindPodVolumes 更新 pvc 状态
- kube controller manager 中的 pv controller watch 到 pvc 更新后触发对应的 pv plugin provisioner
- pv plugin provisioner 执行 Provision
- pv 绑定完后,scheduler 执行 pod 和 node 的绑定
- 完成
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。