我们有一个包含三个工作节点的 Kubernetes 集群,它是手动构建的,借鉴了“Kubernetes, the hard way”教程。
此集群上的所有内容都按预期工作,但有一个例外:调度程序不 - 或似乎不 - 遵守每个工作节点 110 个 pod 的限制。
例子:
工作节点 1:60 个 Pod 工作节点 2:100 个 Pod 工作节点 3:110 个 Pod
当我想部署一个新的 pod 时,调度程序经常会决定最好将新的 pod 调度到“工作节点 3”。Kubelet 拒绝这样做,它确实尊重其 110 pod 限制。调度程序一次又一次地尝试并且从未成功。
我不明白为什么会这样。我想我可能会遗漏有关此问题的一些细节。
根据我的理解和我对调度程序本身的了解,在调度时没有考虑到“每个节点的 pod 数量”的资源或指标——或者至少我在 Kubernetes 调度程序中没有发现任何其他建议文档。当然,调度程序会考虑 CPU 请求/限制、内存请求/限制、磁盘请求/限制 - 这一切都很好并且可以正常工作。所以我什至不知道调度程序如何考虑工作人员使用的 pod 数量,但必须有某种功能来做到这一点,对吧?还是我弄错了?
我的集群坏了吗?我对调度应该/确实如何工作有一些误解吗?
Kubernetes 二进制版本:v1.17.2
编辑:Kubernetes 版本