Calico-node进程导致机器CPU资源占满问题
1、问题现象
截图上可以看出CPU的资源已经被占满,这个截图CPU的数值还算好看的,基本上是0空闲。 #看了一下进程,想知道到底跑的什么进程吧CPU跑满的。 #看上图可以看出来,导致跑满CPU的原因是跑calico-node的pod导致,但按理说跑一个calico-node不至于吧机器的CPU全部跑满。
2、问题处理 带着疑问,我首先先将占资源高的calico-node进程杀死
杀死后看了下,仍然没有解决问题 然后分别看了下,kubelet状态、docker状态
查看后感觉就是kubelet一直在给docker请求,要求docker创建相关容器,但是docker也在做并且一直在做,但是就是无法创建成功。
然后又在master上看了下这个node下calico-node的pod状态,在建立的过程中报存活探针和就绪探针错误。
针对以上问题,我先停掉kubelet,停止创建pod,发现进程中runc和dockerd仍然占用大量的CPU资源,占到50以上,但是机器已经不卡了,可以正常操作命令了。
然后在将docker进行重启,然后在启动kubelet,发现很快资源就被占满了。
针对这个问题,看了下系统日志,发现9099端口被占用,找到了问题所在。
首先先将占用9099的进程杀死,但是杀死后马上就有了一个新的进程。针对此问题
先停掉kubelet,在停掉docker 再将docker的calico-node容器全部rm掉,启动docker再启动kubelet,发现
好几个calico-node进程,此时可以明白,有一个进程始终占着calico-node,然后kubelet在启动真的calico-node这个pod的时候需要9099端口,但是报错被占用,但是还在不停的工作导致大量CPU资源被占用,针对反复对9099端口杀死无果后,最后决定对主机进行重启。 重启后解决问题。
|