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 高度依赖共享存储,而存储关系到数据的安全,关于这块的技术选型还是需要专业的人士参与。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐