Kubernetes 调度程序是否将 Pod 一个一个地分配给队列中的节点(不是并行)?
基于此,我想可能是这种情况,因为提到节点是循环迭代的。
我想确保 pod 调度不是并行完成的。
考虑到kube-scheduler
调度 pod 时执行的所有进程,答案是yes。
对于每个新创建的 pod 或其他未调度的 pod ,kube-scheduler 选择一个最佳节点供它们运行。但是,Pod中的每个容器 对资源的要求都不同,每个 Pod 也有不同的要求。因此,需要根据具体的调度要求对现有节点进行过滤。
在集群中,满足 Pod 调度要求的节点称为可行节点。如果没有合适的节点,则 pod 将保持未调度状态,直到调度程序能够放置它。
调度程序为 Pod 找到可行节点,然后运行一组函数对可行节点进行评分,并在可行节点中选择得分最高的节点来运行 Pod。然后调度程序在称为绑定的过程中通知 API 服务器有关此决定。
调度器根据约束和可用资源确定调度队列中每个 Pod 的有效放置位置。
简而言之,kube-scheduler
一个接一个地挑选 pod,评估它们及其请求,然后继续寻找合适feasible
的节点来安排 pod。
feasible
提到的链接与节点相关,以提供在所有节点上运行 pod 的公平机会。
集群中满足 Pod 调度要求的节点称为 Pod 的可行节点
这里的信息与 default 相关kube-scheduler
,有一些可以使用的解决方案,甚至可以实现自己编写的解决方案。也可以在 cluster 中运行多个调度程序。