首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoScaling工作负载不会耗尽内存

AutoScaling工作负载不会耗尽内存
EN

Stack Overflow用户
提问于 2020-07-01 06:57:16
回答 2查看 97关注 0票数 2

我有许多正在运行的pod和分配给它们的水平pod自动缩放器,我使用的集群还可以根据当前负载自动添加和删除节点。

但是我们最近让集群因为OOM错误而离线,这导致了服务中断。

有没有办法监控每个节点上的负载,如果使用率达到节点上内存的80%,Kubernetes不应该在该节点上调度更多的pod,而是等待另一个节点上线。

EN

回答 2

Stack Overflow用户

发布于 2020-07-01 07:28:48

挂起的pods是人们应该监控和定义影响调度的资源请求

调度程序在将pod调度到节点时使用资源请求信息。每个节点都有一定数量的CPU和内存,可以分配给pods。调度pod时,Scheduler将只考虑具有足够未分配资源的节点,以满足pod的资源需求。如果未分配的CPU或内存量小于pod请求的数量,Kubernetes将不会将pod调度到该节点,因为该节点无法提供pod所需的最小数量。新的Pod将保持挂起状态,直到新节点加入集群。

示例:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
name: requests-pod
spec:
 containers:
 - image: busybox
   command: ["dd", "if=/dev/zero", "of=/dev/null"]
   name: main
   resources:
     requests:
       cpu: 200m
       memory: 10Mi

如果您没有指定对CPU的请求,则表示您并不关心在容器中运行的进程分配了多少CPU时间。在最坏的情况下,它可能根本得不到任何CPU时间(当CPU上存在其他进程的大量需求时,就会发生这种情况)。尽管这可能适用于低优先级的批处理作业,但它显然不适合处理用户请求的容器。

票数 1
EN

Stack Overflow用户

发布于 2020-07-01 16:17:01

简而言之:添加资源请求,但不添加限制。否则,您将面临节流问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62667295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档