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

再把 Pod1 调度到 Node1 上 。 这样就完成了一次抢占调度的流程 。

优先级抢占策略

接下来介绍具体的抢占策略和抢占流程

上图右侧是整个kube-scheduler优先级抢占的调度流程 。 首先一个 Pod 进入抢占的时候 , 会判断 Pod 是否拥有抢占的资格 , 有可能上次已经抢占过一次 。 如果符合抢占资格 , 它会先对所有的节点进行一次过滤 , 过滤出符合这次抢占要求的节点 , 如果不符合就过滤掉这批节点 。

接着从过滤剩下的节点中 , 挑选出合适的节点进行抢占 。 这次抢占的过程会模拟一次调度 , 把上面优先级低的 Pod 先移除出去 , 再把待抢占的 Pod 尝试能否放置到此节点上 。 然后通过这个过程选出一批节点 , 进入下一个过程 ProcessPreemptionWithExtenders 。 这是一个扩展的钩子 , 用户可以在这里加一些自己抢占节点的策略 , 如果没有扩展钩子 , 这里面是不做任何动作的 。

推荐阅读