[问题已处理]- kubernetes报错error creating overlay mount to xx merged- no such file or directory
导语:k8s 启动报错,通过describe pod,发现提示WarningFailed22skubeletError: Error response from daemon: error creating overlay mount to /data1/docker/lib/docker/overlay2/a119f7a409ef07f20a9b7cc912ccacbd3dfeb1bd2399f
导语:k8s 启动报错 ,通过describe pod,发现提示
Warning Failed 22s kubelet Error: Error response from daemon: error creating overlay mount to /data1/docker/lib/docker/overlay2/a119f7a409ef07f20a9b7cc912ccacbd3dfeb1bd2399f0eb7fe45f96b7c08179-init/merged: no such file or directory
只是部分容器有问题,mysql容器也需要挂载磁盘的是启动ok的,业务容器后启动就报错
网上搜了几个方法
1.在 daemon.json 中添加 “storage-driver”:“overlay”
这个不考虑,overlay都已经被overlay2替代了,官方说推荐用
overlay2
代替overlay
和devicemapper
(18.09 版本中废除)以获得更高的效率和磁盘 inode 的节省。再用旧的不合适
2.在 daemon.json 中添加 “storage-driver”:“devicemapper”
不考虑
3.禁用 selinux
我没有安装selinux
尬住。
自己改了下/etc/docker/daemon.json,参考
加了个"storage-driver": “overlay2”,
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-shm-size": "2G",
"insecure-registries": ["harbor.deepwise.com","10.10.3.5","172.28.3.5"] ,
"storage-driver": "overlay2",
"graph": "/data1/docker/lib/docker"
}
修改了docker服务 加了Environment=DOCKER_SELINUX=–selinux-enabled=false,也不知道是否有用。哈哈哈
[Service]
Environment=DOCKER_SELINUX=--selinux-enabled=false
我打算删除docker的graph路径或者叫data-root路径,即/data1/docker:
rm -rf /data1/docker
mkdir -p /data1/docker
# 因为上面改了配置 需要reload
systemctl daemon-reload
# 我这里想看一下debug日志
dockerd --debug
#systemctl restart docker
然后运行原来的helm命令启动服务 就好了。尬住。只能说解决了问题,但是没有找到原因。记不清出问题前之前干了什么骚操作了。
记录一下比较有借鉴意义的排查过程
docker info
检查下你的 docker 信息是不是与下面的保持一致。我当时检查的时候是extfs 磁盘是ext4
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
补充一下ext4 也是可以的。
# 查看磁盘位置
blkid
# 格式化磁盘,更改文件系统为xfs
mkfs.xfs /dev/sdc1
后面再出问题就通过debug看报错。
参考
https://docs.docker.com/storage/storagedriver/overlayfs-driver/
https://zhuanlan.zhihu.com/p/107643520
https://developer.aliyun.com/ask/114099
更多推荐
所有评论(0)