1

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

我尝试过解决网络问题,从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

4

1 回答 1

-1

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

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

于 2019-08-20T09:18:31.650 回答