K8S使用ROOK-CEPH共享存储异常问题排查
1.现象描述
某现场发现前端页面中数据集图片无法显示;
2.问题分析:
STEP1.数据集图片保存在 MinIO 中,浏览器通过地址直接到 MinIO,同时发现应用日志中有与MinIO交互的错误,种种迹象表明,MinIO应用出现了问题;
STEP2.打开MinIO登录页面,发现登录页面无法打开,应用处于奔溃状态;
STEP3.MinIO是部署在k8s上的,登录 kubesphere查看状态,发现有关于PVC相关报错:

STEP4.该现场使用ROOK-CEPH为共享存储,它在对应的宿主机上会创建与PVC同名的目录:

STEP5.进入该目录查看状态:
进入尾数是 bb9 目录,发现权限异常:

对比nacos应用创建的 PVC 目录,可以看到权限是正常的:

3.解决思路
先问了一下GPT:
https://chatgpt.com/share/68df73a0-fa3c-8012-93d9-535d9bc944a9
由于 PVC 中有重要数据,肯定不能直接删除 PVC,里面提到一个思路,就是重启应用。
4.问题解决
上面提到了重启应用,需要注意的是如何操作:
(1)登录 kubesphere 查看使用当前 pvc 的所有应用(不用kubepshere的可以使用命令):

(2) 将涉及到的 deployment 全部停止
在kubesphere中的话直接将副本数调0即可。如果长时间无法停止,则登录到服务器上使用 kubectl 命令强制停止。
(3)重启应用:
查看宿主机权限已正常。应用正常运行。
但是这里有个遗留问题,就是为什么 ROOK-CEPH 会出现这种问题,目前只能怀疑该应用出现了 BUG ,github上与此类似的 issue 地址:
cephfs mount failure.permission denied · Issue #9782 · rook/rook
5.总结
由于 K8S 高度依赖共享存储,而存储关系到数据的安全,关于这块的技术选型还是需要专业的人士参与。
更多推荐


所有评论(0)