我有5个节点在k8s集群中运行,并带有大约30个容器。 一些豆荚通常占用大量内存。在一个阶段,我们发现当所有正在运行的Pod的内存总和超过节点内存时,节点进入“未就绪”状态。
无论如何,我将高内存Pod的资源请求内存增加到高值,但是节点控制器不应该杀死所有Pod并重新启动所有Pod,而不是使节点进入“未就绪”状态吗?
假设一个节点中已经有4个容器在运行,并且调度程序允许另一个容器添加到该节点中,因为资源请求内存在该节点的剩余存储器容量之内。现在由于某种原因在一段时间内所有Pod内存开始增加,并且尽管每个Pod内存仍低于单个资源内存限制值,但是所有Pod内存的总和超过了节点内存,这导致节点处于“未就绪”状态
有什么办法可以克服这种情况?
由于此,所有Pod都转移到其他节点,或者某些Pod转移到挂起,因为它具有更高的资源请求值。
集群信息: Kubernetes版本:1.10.6 正在使用的云:AWS
答案 0 :(得分:1)
您可以在PodSpec中为Memory和restartPolicy
设置适当的逐出阈值。
查看https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/
中的详细信息