Rook Ceph Operator зависает при проверке состояния кластера
Я установил кластер k8s на цифровых океанских каплях Ubuntu 18.04 LTS с помощью ситца поверх wireguard vpn и смог настроить nginx-ingress с traefik в качестве внешнего LB. Сейчас я нахожусь на этапе настройки распределенного хранилища с помощью rook ceph, следуя краткому руководству по адресу https://rook.io/docs/rook/master/ceph-quickstart.html, но кажется, что мониторы никогда не достигают кворум (даже когда его только один). На самом деле, монитор контролирует сам по себе, но ни оператор, ни какие-либо другие мониторы, кажется, не знают этого, и оператор зависает при попытке проверить состояние.
Я пробовал устранять проблемы с сетью, от wireguard, ситца и UFW. Я даже установил ufw, чтобы временно разрешить весь трафик по умолчанию, просто чтобы убедиться, что я не разрешил один порт, но трафик был на другом интерфейсе (у меня есть интерфейсы wg0, eth1, tunl0 и calico).
Я безуспешно следовал руководству по устранению неполадок ceph: http://docs.ceph.com/docs/master/rados/troubleshooting/troubleshooting-mon/ устранение неполадок/troublesho-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
Мониторинг логов https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f
Отслеживайте состояние, получатель напрямую формирует модуль мониторинга через сокет https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f
1 ответ
Вы можете выполнить ceph status
команда внутри панели инструментов ceph.
https://github.com/rook/rook/blob/master/Documentation/ceph-toolbox.md