首页 > 解决方案 > 我们如何根据内存利用率参数限制给定工作节点 (VM) 中的 pod 数量并触发节点扩展

问题描述

眼镜

我有一个具有以下配置的 Kubernetes 集群(仅提供相关信息)

要求

  1. 当任何节点(VM)的内存利用率达到 80% 时,我希望该节点停止生成更多的 pod

  2. 自然地,如果我现有的两个 VM 都处于 80% 的内存阈值,我希望自动生成一个新节点 (VM)。

已经通过了

问题它提供了一种实现方式,但不涉及内存参数。

标签: kubernetesamazon-ekstyphoon-kubernetes

解决方案


您需要扩展 2 个级别。

  1. Pod 级别的自动缩放。这可以通过使用 HPA(Horizo​​ntal Pod Autoscaler)来实现。您可以根据 CPU 和/或内存指标设置扩展策略。

  2. 您必须设置节点级别的自动缩放。参考:集群自动扩缩器

当 pod 由于资源不足而无法启动或集群中的节点未充分利用并且它们的 pod 可以重新调度到集群中的其他节点时,Kubernetes Cluster Autoscaler 会自动调整集群中的节点数量。

另外,请注意,集群自动缩放器会根据资源可用性(内存或 CPU)决定何时向外扩展和缩减。我认为您不能在这里将 80% 的内存阈值设置为扩展策略。

用于扩展的 AWS EKS 文档AWS EKS Autoscaling


推荐阅读