kubernetes - 我们如何根据内存利用率参数限制给定工作节点 (VM) 中的 pod 数量并触发节点扩展
问题描述
眼镜
我有一个具有以下配置的 Kubernetes 集群(仅提供相关信息)
我有两个配置为 c5.xlarge 的工作节点(c5.xlarge 4vCPU 8GiB 内存)。为了澄清这些是 Amazon AWS 上的两个 EC2 虚拟机。
我在两个节点上运行后端应用程序
要求
当任何节点(VM)的内存利用率达到 80% 时,我希望该节点停止生成更多的 pod
自然地,如果我现有的两个 VM 都处于 80% 的内存阈值,我希望自动生成一个新节点 (VM)。
已经通过了
问题它提供了一种实现方式,但不涉及内存参数。
解决方案
您需要扩展 2 个级别。
Pod 级别的自动缩放。这可以通过使用 HPA(Horizontal Pod Autoscaler)来实现。您可以根据 CPU 和/或内存指标设置扩展策略。
您必须设置节点级别的自动缩放。参考:集群自动扩缩器
当 pod 由于资源不足而无法启动或集群中的节点未充分利用并且它们的 pod 可以重新调度到集群中的其他节点时,Kubernetes Cluster Autoscaler 会自动调整集群中的节点数量。
另外,请注意,集群自动缩放器会根据资源可用性(内存或 CPU)决定何时向外扩展和缩减。我认为您不能在这里将 80% 的内存阈值设置为扩展策略。
用于扩展的 AWS EKS 文档AWS EKS Autoscaling
推荐阅读
- php - 提交按钮只保存一个输入框
- php - Magento 2 数据补丁问题
- python - 从两个字典中绘制线图
- python - 使用 beautifulsoup 和 pandas 将提取的数据从链接转换为数据框
- r - 遍历df文件字段并存储为txt
- azure-ad-b2c - 使用 AWS 设置 Azure b2c SSO
- sql - 对两个字段使用 Like 运算符
- cassandra - Cassandra 查询语言(CQL):我们可以结合 SELECT * FROM table_name;和 SELECT count(*) FROM table_name;
- bluetooth-lowenergy - BTLE 特征值的字节数过多
- c - 当读取 C 中的字符串时,while 循环何时停止?