1

Kubernetes 调度程序是否将 Pod 一个一个地分配给队列中的节点(不是并行)?

基于,我想可能是这种情况,因为提到节点是循环迭代的。

我想确保 pod 调度不是并行完成的。

4

1 回答 1

2

简短的回答

考虑到kube-scheduler调度 pod 时执行的所有进程,答案是yes

调度程序和 Pod

对于每个新创建的 pod 或其他未调度的 pod ,kube-scheduler 选择一个最佳节点供它们运行。但是,Pod中的每个容器 对资源的要求都不同,每个 Pod 也有不同的要求。因此,需要根据具体的调度要求对现有节点进行过滤。

在集群中,满足 Pod 调度要求的节点称为可行节点。如果没有合适的节点,则 pod 将保持未调度状态,直到调度程序能够放置它。

调度程序为 Pod 找到可行节点,然后运行一组函数对可行节点进行评分,并在可行节点中选择得分最高的节点来运行 Pod。然后调度程序在称为绑定的过程中通知 API 服务器有关此决定。

参考 - kube-scheduler

调度器根据约束和可用资源确定调度队列中每个 Pod 的有效放置位置。

参考 - kube-scheduler - 概要

简而言之,kube-scheduler一个接一个地挑选 pod,评估它们及其请求,然后继续寻找合适feasible的节点来安排 pod。

调度器和节点

feasible提到的链接与节点相关,以提供在所有节点上运行 pod 的公平机会。

集群中满足 Pod 调度要求的节点称为 Pod 的可行节点

这里的信息与 default 相关kube-scheduler,有一些可以使用的解决方案,甚至可以实现自己编写的解决方案。也可以在 cluster 中运行多个调度程序

有用的链接:

于 2021-09-30T14:41:47.937 回答