Rook Ceph Operator зависает при проверке состояния кластера - PullRequest
0 голосов
/ 11 июня 2019

Я установил кластер k8s на цифровых океанских каплях Ubuntu 18.04 LTS с использованием ситца поверх wireguard vpn, и смог настроить nginx-вход с traefik в качестве внешнего LB. Сейчас я нахожусь на этапе настройки распределенного хранилища с помощью rook ceph, следуя быстрому запуску на https://rook.io/docs/rook/master/ceph-quickstart.html,, но кажется, что мониторы никогда не достигают кворума (даже если он только один). На самом деле, контролируйте зону действия самостоятельно, но ни оператор, ни какие-либо другие мониторы, кажется, не знают этого, и оператор зависает при попытке проверить состояние.

Я пробовал устранять неполадки в сети, начиная с 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

Кстати, пинг монитора от оператора работает просто отлично

Операторские журналы https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-operator-log

Мониторинг логов https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-mon-a-log

Мониторинг состояния, получение напрямую от модуля монитора через сокет https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-mon-a-status

...