Kubernetes 调度会忽略每个工作节点的 pod 数量

问题描述

我们有一个包含三个工作节点的 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 版本

解决方法

通常这意味着其他节点不合适。明确地通过污点等,或者更常见的是资源请求空间之类的东西。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...