解决kubelet报failed to get imageFs info: non-existent label \“docker-images\“
文章讲述了当环境主机kubelet重启后,由于kubelet先于docker启动导致镜像回收失败的问题,提出了两种解决方法:一是暂时停止并重启docker和kubelet;二是修改kubelet.service配置以确保docker启动后再进行资源回收。强调了docker和kubelet启动顺序的重要性。
问题:
一环境主机重启后,查看kubelet日志经常有大量无法回收镜像文件报错,会导致kubelet的pleg不健康,从而导致kubelet发生重启。报错如下:
解决办法
解决方法一:
systemctl stop docker
systemctl stop kubelet
systemctl start docker
systemctl start kubelet
解决方法二:
在kubelet的kubelet.service文件中,添加如下参数:
[Unit]
After=docker.service
原因总结: 主机重启后,kubelet比docker先启动,会对不健康的pod进行一个资源回收的过程,这个时候docker还没正常启动,kubelet无法调用docker的socket接口对镜像回收,会导致每五分钟一次的循环检查,默认到100次就会触发gc,会导致kubelet的pleg不健康,这个启动顺序还是很重要的。
评论区