Kubernetes垃圾收集清洁docker组件
目前正在运行k8s群集,但偶尔会出现内存问题。将弹出以下错误:Kubernetes垃圾收集清洁docker组件,docker,kubernetes,Docker,Kubernetes,目前正在运行k8s群集,但偶尔会出现内存问题。将弹出以下错误: Failed create pod sandbox:rpc error:code=Unknown desc=未能为pod“”创建沙盒:来自守护程序的错误响应:devmapper:精简池有6500个可用数据块,小于所需的最小7781个可用数据块。在精简池中创建更多可用空间或使用dm.min\u free\u space选项更改行为 我可以通过手动运行docker ps-a-f status=exited-q | xargs-r doc
Failed create pod sandbox:rpc error:code=Unknown desc=未能为pod“”创建沙盒:来自守护程序的错误响应:devmapper:精简池有6500个可用数据块,小于所需的最小7781个可用数据块。在精简池中创建更多可用空间或使用dm.min\u free\u space选项更改行为
我可以通过手动运行docker ps-a-f status=exited-q | xargs-r docker rm-v
但是我希望库伯内特斯自己做这项工作。目前在我的kublet配置中,我有:
evictionHard:
imagefs.available: 15%
memory.available: "100Mi"
nodefs.available: 10%
nodefs.inodesFree: 5%
imageGCHighThresholdPercent: 85
imageGCLowThresholdPercent: 80
我做错了什么?阅读您发布的错误,在我看来,您正在使用“”作为存储驱动程序 Docker Engine 18.09中不推荐使用
devicemapper
存储驱动程序,该驱动程序将在将来的版本中删除。建议deviceapper
存储驱动程序的用户迁移到overlay2
我建议您使用“overlay2”作为存储驱动器,除非您运行的是不支持的操作系统。请参阅支持操作系统版本
您可以使用docker info
命令检查实际存储驱动器,您将得到如下输出:
Client:
Debug Mode: false
Server:
Containers: 21
Running: 18
Paused: 0
Stopped: 3
Images: 11
Server Version: 19.03.5
Storage Driver: devicemapper <<== See here
Pool Name: docker-8:1-7999625-pool
Pool Blocksize: 65.54kB
...
/var/lib/docker
的内容复制到临时位置
$ cp -au /var/lib/docker /var/lib/docker.bk
/var/lib/
使用的备份文件系统不同的备份文件系统,请格式化该文件系统并将其装入/var/lib/docker
。确保将此挂载添加到/etc/fstab
以使其永久化/etc/docker/daemon.json
。如果它还不存在,请创建它。假设文件为空,添加以下内容
{
"storage-driver": "overlay2"
}
如果daemon.json
文件包含格式错误的json,则Docker不会启动$ sudo systemctl start docker
overlay2
存储驱动程序。使用docker info
命令,查找Storage Driver
和Backing filesystem
客户端:
调试模式:false
服务器:
货柜:35
跑步:15
暂停:0
截止时间:20
图片:11
服务器版本:19.03.5
存储驱动程序:overlay2您需要检查容器集合我在这里没有看到这些选项看起来它们是,并且您有imageGC的新标志
$ sudo systemctl start docker
Client:
Debug Mode: false
Server:
Containers: 35
Running: 15
Paused: 0
Stopped: 20
Images: 11
Server Version: 19.03.5
Storage Driver: overlay2 <=== HERE
Backing Filesystem: extfs <== HERE
Supports d_type: true