您的位置 首页 k8s

k8s OOMKilled 解决方法

Kubernetes 触发 OOMKilled(内存杀手)如何排除故障 - 知乎 (zhihu.com)

(OOMKilled 即为内存杀手),当前集群给 Pod 所在进程分配的内存用完了,没有可分配的内存,出于集群稳定考虑, k8s 会委托 Cgroups 会把当前 Pod 进程杀掉, 下边分享一些出现 OOMKilled 的原因,以及排故。

一般而言 CPU 不够不会被 杀掉,内存不够会被杀掉,

这是因为 CPU 为可压缩资源,而内存属于不可压缩资源, CPU 不够 cgroups 会对 Pod 中的容器的 CPU 使用进行限流(Throttled). 而内存不够,则会被 Kill 掉.

K8s OOMKilled 分为2类

(1)第一种为宿主节点行为,即 OOMKillde 是由宿主机内核直接触发,当 Pod 中没有进行资源限制,会无限制的超用宿主节点资源,触发的 OOMKillde.

(2) 第二种 K8s 行为,Pod 配置了资源限制,超过了资源限制,由Cgroups 触发的 OOMKillde

先去扩大内存:

 

资源限制调整为 100M 问题解决

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章