欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

[k8s]解决报错:drivernamerook-ceph.cephfs.csi.ceph.comnotfoundinthelistofregisteredCSIdriver

时间:2023-06-26

部署在某云平台的k8s集群,节点配置如下

尝试部署openebs/jiva 和 root/ceph 的CSI驱动都出现类似以下报错:

MountVolume.MountDevice failed for volume "pvc-a7dfc3f5-e719-442d-82cd-68da52c568b2" : driver name rook-ceph.cephfs.csi.ceph.com not found in the list of registered CSI drivers

问题定位:
1 plugin pod可以正常调度到master节点,pv也可以自动生成并attach到pod,也就是说CSI驱动本身部署没有问题
2 由于CSI驱动是通过 /var/lib/kubelet/plugins_registry/xxxx-reg.sock 进行注册的,查看各个node的注册路径也已经正确生成 /var/lib/kubelet/plugins_registry/xxxx-reg.sock 文件
3 由于这套k8s集群是从云平台自动生成的,可能kubelet的配置有修改过
4 最终定位到问题原因是docker和kubelet的root-dir都被云平台设置为 /data/var/lib/xxx,而xxx-reg.sock文件却是在 /var/lib/kubelet/plugins_registry/ 目录下,从而导致 kubelet 无法找到 /data/var/lib/kubelet/plugins_registry/xxxx-reg.sock 文件

解决方案:
修改 /etc/docket/daemon.json,恢复root-dir 为默认 /var/lib/docker
修改 /etc/default/kubelet,恢复root-dir 为默认 /var/lib/kubelet
然后重启服务

systemctl restart dockersystemctl restart kubelet

重新部署CSI驱动就可以正常识别了

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。