Pod频繁被重拉

背景:

四个同一副本控制集的Pod被频繁的重拉,数日内次数达到了百余次。

 

问题原因

node资源不足。

排查:

1、kubectl describe pod $pod名

输出只显示就绪探测失败。

就绪探测是当时Pod重拉时候未Running 1/1时显示的,Running 1/1后此报错就不用关注了。

输出的describe也没有报oomkill的问题

所以没有输出相关的重拉原因。

2、将此Pod的优先级调高。

kubectl edit sts pod的副本控制集名 

将里面的limit与requests添加cpu 2 并且将requests的8g改为与limit相同的16g

将资源调大后两个被频繁重拉的 Pod可以快速变为1/1 Running了,能改善被频繁重拉的次数。

3、按照上步操作后部署被频繁重拉的四个pod结果有两个pod起不来报错node上的内存不足

kubectl describe pod $pod名

执行出来后有内存不足的报错。

4、kubectl get pod -owide |grep pod名   查看被频繁重拉pod所在节点名字

5、 kubectl top node 发现Pod所在的node内存使用率达到百分之60以上,pod就被自动delete重拉

6、登陆到被频繁重拉pod对应的节点上查看/var/logs/messages显示有内存不足的报错:
Mar 13 12:55:59 $主机名 systemd: Scope libcontainer-75049-systemd-test-default-dependencies.scope has no PIDs. Refusing.
Mar 13 12:55:59 $主机名 systemd: Scope libcontainer-75049-systemd-test-default-dependencies.scope has no PIDs. Refusing.
Mar 13 12:55:59 $主机名 systemd: Created slice libcontainer_75049_systemd_test_default.slice.
Mar 13 12:55:59 $主机名 systemd: Removed slice libcontainer_75049_systemd_test_default.slice.
Mar 13 12:56:00 $主机名 systemd: Scope libcontainer-75086-systemd-test-default-dependencies.scope has no PIDs. Refusing.
Mar 13 12:56:00 $主机名 systemd: Scope libcontainer-75086-systemd-test-default-dependencies.scope has no PIDs. Refusing.
Mar 13 12:56:00 $主机名 systemd: Created slice libcontainer_75086_systemd_test_default.slice.
Mar 13 12:56:00 $主机名 systemd: Removed slice libcontainer_75086_systemd_test_default.slice.

8、free -gh 查看到节点是32G内存,此问题是node内存不足导致的,需要给node扩容内存。

原文地址:https://www.cnblogs.com/wannengachao/p/14593077.html