抱歉,我是Kubernetes和Ceph的新手,对此一无所知。
我已经使用本教程设置了Kubernetes和Ceph(http://tutorial.kubernetes.noverit.com/content/ceph.html)
我已经像这样设置了集群:
1个Kube-Master和2个辅助节点(此行为充当带有2个OSD的ceph监视器)
我用来设置ceph集群的ceph部署在Kube-master中。
一切工作正常,我安装了具有5个副本的示例Web应用程序(部署),当其余API命中时,它将创建一个文件。该文件将被复制到每个节点。
但是10分钟后,我又使用API创建了一个文件,但是当我尝试列出(ls -l)时,出现以下错误:
对于节点1:
ls: cannot access 'previousFile.txt': Structure needs cleaning
previousFile.txt newFile.txt
对于node2:
previousFile.txt
对于node2,未创建新文件
可能是什么问题?我尝试了很多次仍然弹出相同的错误。
任何帮助表示赞赏。
最佳答案
这完全看起来像您的文件系统已损坏。检查事项:
$ kubectl logs <ceph-pod1>
$ kubectl logs <ceph-pod2>
$ kubectl describe deployment <ceph-deployment>
#是否有任何 pod 重启? 有关错误消息here的一些信息。
根据您拥有的内容,可能需要从头开始。或者,您可以在Ceph中查看recovering data,但是如果您没有按时操作,则可能无法正常工作。
在Kubernetes上运行Ceph可能非常棘手,因为在不同Kubernetes节点上启动的特定节点的任何启动/重新启动都可能会破坏数据,因此您需要确保该部分相当牢固,可能使用Node Affinity或在特定Kubernetes节点上运行Ceph Pod与labels。
关于docker - 为什么我用Kubernetes在Ceph上收到 “Structure needs cleaning”消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53638814/