简述Kubernetes Scheduler作用及实现原理?

Kubernetes Scheduler的作用是负责Pod的调度,在整个系统中起”承上启下”的作用。具体来说,它负责接收Controller Manager创建的新的Pod,为其选择一个合适的Node,并将信息写入etcd中。一旦调度完成,Node上的kubelet服务进程接管后续工作,负责Pod的生命周期。

Kubernetes Scheduler的实现原理包括预选调度和确定最优节点两个过程。在预选调度过程中,Scheduler遍历所有目标Node,筛选出符合要求的候选节点。然后,在确定最优节点的过程中,Scheduler采用优选策略计算每个候选节点的积分,取最高积分,选择积分最高的节点作为最优节点。

整个调度过程涉及三个对象:待调度Pod列表、可用Node列表以及调度算法和策略。调度算法为待调度Pod列表中的每个Pod从Node列表中选择一个最适合的Node,并将信息写入etcd中。调度策略包括预选策略和优选策略,预选策略返回true表示该节点满足该Pod的调度条件,优选策略则计算每个候选节点的积分,取最高积分。

Kubernetes Scheduler还提供了一种插件式加载的”调度算法提供者”结构体,用于实现调度算法的具体实现。一个调度算法提供者包括一组预选策略与一组优选策略,通过预选策略筛选出符合要求的候选节点,然后通过优选策略计算每个候选节点的积分,选择积分最高的节点作为最优节点。

总之,Kubernetes Scheduler的作用是负责Pod的调度,在整个系统中起承上启下的作用。它通过预选调度和确定最优节点两个过程实现Pod的调度,并采用调度算法和策略进行具体实现。

发表评论

后才能评论