kubernetes - Google 中的 Kubernetes 集群 (GKE) 超过了扩展节点
问题描述
我在 GCP 中有一个 Kubernetes 集群,它运行多个启用了自动缩放的节点池。似乎自动缩放器超出了缩放... 附件是节点列表及其使用情况(我使用的是 32CPU 机器类型)。
无法理解为什么自动缩放器不合并其中一些机器,因为使用量远低于容量,并且在多台机器上运行的 pod 可以轻松合并为一个。
我没有使用任何特殊的污点/亲和力,所以我不明白为什么会发生这种过度缩放。阅读节点自动缩放器文档也不能解释这种行为。
列:状态、请求的 CPU、总 CPU、请求的 RAM、总 RAM
解决方案
正如您对 kube-system pod 的确认,您可能在节点中运行了一些 kube-system pod,这些 pod 会阻止自动缩放器删除节点;请看这个。
关于 GKE 下的 cluster-autoscaler 的日志,很遗憾我认为你没有这样的访问权限。如果您有权访问主计算机,请检查 /var/log/cluster-autoscaler.log 中的 Cluster Autoscaler 日志。Cluster Autoscaler 记录了很多有用的信息,包括它为什么认为 pod 不可移动或者它的扩展计划是什么。有关更多信息,您可以查看此。
请注意,节点完全有可能未充分利用,但 pod 不适合其他任何地方,因此这可能是无法删除节点的原因。此处记录了逻辑。
推荐阅读
- sonarqube - 如何解决 Sonarqube java.lang.OutOfMemoryError: Java heap space
- java - 摆动拖动图像在 Linux 上不起作用
- python - 使用 websocket python+django+angular 的聊天应用程序
- sql - 数据库代数:从数据库结构中导出属性
- mongodb - 使用身份验证选项编译的 MongoDB C++ 驱动程序是否会惩罚不使用身份验证的客户端?
- python - 在这个例子中,我如何让 mpi4py 与 R 一起工作?
- sql - 当我将regexp_substr与connect by子句和级别一起使用时如何从对偶中选择多个列
- c - 多次更改函数中数组的值
- c++ - 使用其他编译器编译 QT 代码
- file - Wildfly 报错打开文件太多,ulimit 不起作用