背景
今天部署es集群时,pod总是报OOMKilled,于是理解的于是进行了排查
参考文章:https://zhuanlan.zhihu.com/p/519430209?utm_id=0
排查,从两方面入手
1.查看node,并通过kubectl describe node,pod所在节点上的内存资源使用情况
发现资源是足够的
那么就是设置的resquest值太小了
2.调整资源中内存的request的值,调大,例如我从200m 调到了1Gi
可以启动成功了
原理
例如,一个拥有 8 GB 内存的节点,Kubernetes可能会运行 8 个容器,内存Request值为 1 GB。如果这些容器的内存Limit为 1.5 GB,则某些 pod 的使用量可能会超过最小值,从而导致节点内存不足并强制杀死某些pod
再或者,你设置的内存的request值比较小时,但是你的程序启动需要较大的内存,因此会超过你设置的request配额,那么就会被OOMKilled。不一定是超出了节点的可用资源限制