Rook Ceph Operator 在检查集群状态时挂起

Posted

技术标签:

【中文标题】Rook Ceph Operator 在检查集群状态时挂起【英文标题】:Rook Ceph Operator hangs when checking for cluster status 【发布时间】:2019-10-25 17:05:46 【问题描述】:

我已经在wireguard ***之上使用calico在数字海洋Ubuntu 18.04 LTS droplets上设置了一个k8s集群,并且能够使用traefik作为外部LB设置nginx-ingress。我现在正在按照https://rook.io/docs/rook/master/ceph-quickstart.html 的快速入门使用rook ceph 设置分布式存储,但似乎监视器永远不会达到法定人数(即使只有一个)。实际上,自己监控一个reach,但操作员或任何其他监控器似乎都不知道这一点,并且操作员在尝试检查状态时挂起。

我尝试过解决网络问题,包括wireguard、calico 和ufw。我什至将 ufw 设置为默认情况下暂时允许所有流量,以确保我不允许一个端口但流量在另一个接口上(我有 wg0、eth1、tunl0 和 calico 接口)。

我按照 ceph 故障排除指南失败了:http://docs.ceph.com/docs/master/rados/troubleshooting/troubleshooting-mon/#recovering-a-monitor-s-broken-monmap

我已经 4 天了,我没有解决方案。

这是我设置存储集群的方法

cd cluster/examples/kubernetes/ceph
kubectl apply -f common.yaml
kubectl apply -f operator.yaml
kubectl apply -f cluster-test.yaml

运行kubectl get pods 返回

NAME                                      READY   STATUS    RESTARTS   AGE
pod/rook-ceph-agent-9ws2p                 1/1     Running   0          24s
pod/rook-ceph-agent-v6v9n                 1/1     Running   0          24s
pod/rook-ceph-agent-x2jv4                 1/1     Running   0          24s
pod/rook-ceph-mon-a-74cc6db5c8-8s5l5      1/1     Running   0          9s
pod/rook-ceph-operator-7cd5d8bd4c-pclxp   1/1     Running   0          25s
pod/rook-discover-24cfj                   1/1     Running   0          24s
pod/rook-discover-6xsnp                   1/1     Running   0          24s
pod/rook-discover-hj4tc                   1/1     Running   0          24s

但是,当我尝试检查监视器的状态时,我从操作员舱中得到:

#This hangs forever
kubectl exec -it rook-ceph-operator-7cd5d8bd4c-pclxp ceph status

#This hangs foverer
kubectl exec -it rook-ceph-operator-7cd5d8bd4c-pclxp ceph ping mon.a

#This returns [errno 2] error calling ping_monitor
#Which I guess should, becasue mon.b does/should not exist
#But I expected a response such as mon.b does not exist
kubectl exec -it rook-ceph-operator-7cd5d8bd4c-pclxp ceph ping mon.b

顺便说一下,从操作员那里 ping 监控吊舱效果很好

操作员日志 https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-operator-log

监控日志 https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-mon-a-log

监听一个状态,获取者直接通过socket形成监听pod https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-mon-a-status

【问题讨论】:

另外,我不知道它是否相关,但监控日志一直显示“未配置文件系统”,我认为这不会影响连接。如果这是一个错误,它应该在状态响应中返回,而不是正确挂起? 您是否尝试过使用Rook Toolbox? @Crou 是的,我有,它基本上具有与 ceph 操作员和监视器相同的工具。所以我可以从工具箱或操作员中调用ceph status,我也这样做了,结果是一样的。所有命令都挂起。 【参考方案1】:

您可以在 ceph 工具箱 pod 中执行 ceph status 命令。

https://github.com/rook/rook/blob/master/Documentation/ceph-toolbox.md

【讨论】:

以上是关于Rook Ceph Operator 在检查集群状态时挂起的主要内容,如果未能解决你的问题,请参考以下文章

k8s 集群部署rook-ceph存储系统及使用

Kuberntes云原生实战六 使用Rook搭建Ceph集群

Kuberntes云原生实战六 使用Rook搭建Ceph集群

Kubernetes云原生实战06 使用Rook搭建Ceph集群

k8s集群中安装rook-ceph

ceph 维护记录