Поды Rook Ceph не запускаются должным образом после включения Sidecar Istio

Мы сталкиваемся с проблемой развертывания rook-ceph в Kubernetes, когда включен sidecar istio. Проблема в том, что OSD не появляются, потому что сборщики сбоев не инициализируются должным образом. Он застрял, как показано ниже.

rook-ceph        csi-cephfsplugin-7jcr9                             3/3     Running            0          63m
rook-ceph        csi-cephfsplugin-c4dnd                             3/3     Running            0          63m
rook-ceph        csi-cephfsplugin-provisioner-8658f67749-6gzkk      7/7     Running            2          63m
rook-ceph        csi-cephfsplugin-provisioner-8658f67749-bgdpx      7/7     Running            1          63m
rook-ceph        csi-cephfsplugin-zj9xm                             3/3     Running            0          63m
rook-ceph        csi-rbdplugin-58xf4                                3/3     Running            0          63m
rook-ceph        csi-rbdplugin-87rjn                                3/3     Running            0          63m
rook-ceph        csi-rbdplugin-provisioner-94f699d86-rh2r6          7/7     Running            1          63m
rook-ceph        csi-rbdplugin-provisioner-94f699d86-xkv6h          7/7     Running            1          63m
rook-ceph        csi-rbdplugin-tvjvz                                3/3     Running            0          63m
rook-ceph        rook-ceph-crashcollector-node1-f7f6c6f8d-lfs6d     0/2     Init:0/3           0          63m
rook-ceph        rook-ceph-crashcollector-node2-998bb8769-pspnn     0/2     Init:0/3           0          51m
rook-ceph        rook-ceph-crashcollector-node3-6c48c99c8-7bbl6     0/2     Init:0/3           0          40m
rook-ceph        rook-ceph-mon-a-7966994c76-z9phm                   2/2     Running            0          51m
rook-ceph        rook-ceph-mon-b-8cbf8579f-g6nd9                    2/2     Running            0          51m
rook-ceph        rook-ceph-mon-c-d65968cc4-wcpmr                    2/2     Running            0          40m
rook-ceph        rook-ceph-operator-5c47844cf-z9jcb                 2/2     Running            1          67m

Когда мы выполняем описание kubectl для этого модуля, мы получаем следующие проблемы:

Warning  FailedMount  59m                  kubelet, node1  Unable to attach or mount volumes: unmounted volumes=[rook-ceph-crash-collector-keyring], unattached volumes=[rook-config-override rook-ceph-log rook-ceph-crash-collector-keyring istio-data istio-podinfo istiod-ca-cert istio-envoy rook-ceph-crash default-token-htvcq]: timed out waiting for the condition

Также заметил, что секретный брелок «rook-ceph-crash-collector-keyring» не создается.

После долгой отладки заметил, что модули mon не доступны через конечные точки службы. Но все другие коммуникации, такие как API Kubernetes, другие службы в других пространствах имен и т. Д., Работают нормально.

Когда мы запускаем модуль mon pod и выполняем curl, если мы используем имя хоста, к которому он подключается.

sh-4.4# curl -f rook-ceph-mon-b-8cbf8579f-g6nd9:6789
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.

но использование имени службы не работает

sh-4.4# curl -f rook-ceph-mon-a:6789
curl: (56) Recv failure: Connection reset by peer

Также в журналах операторов ладей-цефов можно заметить потенциальные ключи к тому, чтобы монстры не попали в кворум.

2021-02-13 06:11:23.532494 I | op-k8sutil: deployment "rook-ceph-mon-a" did not change, nothing to update
2021-02-13 06:11:23.532658 I | op-mon: waiting for mon quorum with [a c b]
2021-02-13 06:11:24.123965 I | op-mon: mons running: [a c b]
2021-02-13 06:11:44.354283 I | op-mon: mons running: [a c b]
2021-02-13 06:12:04.553052 I | op-mon: mons running: [a c b]
2021-02-13 06:12:24.760423 I | op-mon: mons running: [a c b]
2021-02-13 06:12:44.953344 I | op-mon: mons running: [a c b]
2021-02-13 06:13:05.153151 I | op-mon: mons running: [a c b]
2021-02-13 06:13:25.354678 I | op-mon: mons running: [a c b]
2021-02-13 06:13:45.551489 I | op-mon: mons running: [a c b]
2021-02-13 06:14:05.910343 I | op-mon: mons running: [a c b]
2021-02-13 06:14:26.188100 I | op-mon: mons running: [a c b]
2021-02-13 06:14:46.377549 I | op-mon: mons running: [a c b]
2021-02-13 06:15:06.563272 I | op-mon: mons running: [a c b]
2021-02-13 06:15:27.119178 I | op-mon: mons running: [a c b]
2021-02-13 06:15:47.372562 I | op-mon: mons running: [a c b]
2021-02-13 06:16:07.565653 I | op-mon: mons running: [a c b]
2021-02-13 06:16:27.751456 I | op-mon: mons running: [a c b]
2021-02-13 06:16:47.952091 I | op-mon: mons running: [a c b]
2021-02-13 06:17:08.168884 I | op-mon: mons running: [a c b]
2021-02-13 06:17:28.358448 I | op-mon: mons running: [a c b]
2021-02-13 06:17:48.559239 I | op-mon: mons running: [a c b]
2021-02-13 06:18:08.767715 I | op-mon: mons running: [a c b]
2021-02-13 06:18:28.987579 I | op-mon: mons running: [a c b]
2021-02-13 06:18:49.242784 I | op-mon: mons running: [a c b]
2021-02-13 06:19:09.456809 I | op-mon: mons running: [a c b]
2021-02-13 06:19:29.671632 I | op-mon: mons running: [a c b]
2021-02-13 06:19:49.871453 I | op-mon: mons running: [a c b]
2021-02-13 06:20:10.062897 I | op-mon: mons running: [a c b]
2021-02-13 06:20:30.258163 I | op-mon: mons running: [a c b]
2021-02-13 06:20:50.452097 I | op-mon: mons running: [a c b]
2021-02-13 06:21:10.655282 I | op-mon: mons running: [a c b]
2021-02-13 06:21:25.854570 E | ceph-cluster-controller: failed to reconcile. failed to reconcile cluster "rook-ceph": failed to configure local ceph cluster: failed to create cluster: failed to start ceph monitors: failed to start mon pods: failed to check mon quorum a: failed to wait for mon quorum: exceeded max retry count waiting for monitors to reach quorum

Похоже, что монстры больше не доступны через конечные точки службы, и это приводит к зависанию всего процесса инициализации.

ниже представлены службы, работающие в пространстве имен rook-ceph.

NAME                       TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
csi-cephfsplugin-metrics   ClusterIP   10.233.30.235   <none>        8080/TCP,8081/TCP   83m
csi-rbdplugin-metrics      ClusterIP   10.233.61.8     <none>        8080/TCP,8081/TCP   83m
rook-ceph-mon-a            ClusterIP   10.233.2.224    <none>        6789/TCP,3300/TCP   83m
rook-ceph-mon-b            ClusterIP   10.233.39.129   <none>        6789/TCP,3300/TCP   72m
rook-ceph-mon-c            ClusterIP   10.233.51.59    <none>        6789/TCP,3300/TCP   61m

Другие примечания: Мы используем все последние версии istio, rook-ceph и т. д. Кластер создается с помощью Kubespray, работающего на Ubuntu bionic с 3 узлами. Используя Calico.

Пожалуйста, дайте нам знать, если вам нужна более подробная информация. Заранее спасибо.


person Sunil Kpmbl    schedule 13.02.2021    source источник
comment
Я думаю, вы могли бы аннотировать свое пространство имен rook-ceph, чтобы в него не вводились сайдкары istio. Будет ли это хорошим решением для вас, или вам по какой-то причине нужны коляски istio на стручках rook-ceph? (с некоторыми исключениями, как описано здесь istio.io/latest/docs/setup/additional-setup/sidecar-injection/)   -  person AndD    schedule 13.02.2021
comment
спасибо за ответ ... да, это можно сделать в качестве последнего варианта. Пытался включить все поды в rook-ceph, чтобы воспользоваться преимуществами istio MTLS.   -  person Sunil Kpmbl    schedule 13.02.2021
comment
Вы сказали, что используете последнюю версию ладья-цеф, какую версию, если быть точным? Я видел некоторые проблемы с github, когда в последних версиях есть проблемы с istio, и они были исправлены в еще более новой версии, поэтому я бы проверил это для начала.   -  person AndD    schedule 13.02.2021
comment
Kubernetes v1.19.7 Istio 1.9.0 ceph / ceph: v15.2.8 rook / ceph: v1.5.6 cephcsi: v3.2.0 это версии. Вижу ладья выпустила 1.5.7, попробую и с этим. Спасибо, что изучили это.   -  person Sunil Kpmbl    schedule 14.02.2021
comment
Помогло ли обновление ceph версии 1.5.7?   -  person Malgorzata    schedule 15.02.2021


Ответы (1)


Я как бы сузил вопрос до стручков ладьи-цеф-мон. Если мы исключим внедрение sidecar на подах rook-ceph-mon и rook-ceph-osd-prepare (это должно быть нормально, поскольку это одноразовое запланированное задание), все будет работать нормально.

В конфигурации Istio я добавил это, чтобы исключить mon и подготовить поды к внедрению sidecar, и после этого все заработало.

neverInjectSelector: - matchExpressions: - {key: mon, operator: Exists} - matchExpressions: - {key: job-name, operator: Exists}

Еще мне пришлось сделать режим MTLS РАЗРЕШИТЕЛЬНЫМ из СТРОГО.

Список теперь будет выглядеть так (обратите внимание, что для монстров нет коляски)

rook-ceph        csi-cephfsplugin-444gk                             3/3     Running     0          16m
rook-ceph        csi-cephfsplugin-9cdkz                             3/3     Running     0          16m
rook-ceph        csi-cephfsplugin-n6k5x                             3/3     Running     0          16m
rook-ceph        csi-cephfsplugin-provisioner-8658f67749-ms985      7/7     Running     2          16m
rook-ceph        csi-cephfsplugin-provisioner-8658f67749-v2g8x      7/7     Running     2          16m
rook-ceph        csi-rbdplugin-lsfhl                                3/3     Running     0          16m
rook-ceph        csi-rbdplugin-mbf67                                3/3     Running     0          16m
rook-ceph        csi-rbdplugin-provisioner-94f699d86-5fvrf          7/7     Running     2          16m
rook-ceph        csi-rbdplugin-provisioner-94f699d86-zl7js          7/7     Running     2          16m
rook-ceph        csi-rbdplugin-swnvt                                3/3     Running     0          16m
rook-ceph        rook-ceph-crashcollector-node1-779c58d4c4-rx7jd    2/2     Running     0          9m20s
rook-ceph        rook-ceph-crashcollector-node2-998bb8769-h4dbx     2/2     Running     0          12m
rook-ceph        rook-ceph-crashcollector-node3-88695c488-gskgb     2/2     Running     0          9m34s
rook-ceph        rook-ceph-mds-myfs-a-6f94b9c496-276tw              2/2     Running     0          9m35s
rook-ceph        rook-ceph-mds-myfs-b-66977b55cb-rqvg9              2/2     Running     0          9m21s
rook-ceph        rook-ceph-mgr-a-7f478d8d67-b4nxv                   2/2     Running     1          12m
rook-ceph        rook-ceph-mon-a-57b6474f8f-65c9z                   1/1     Running     0          16m
rook-ceph        rook-ceph-mon-b-978f77998-9dqdg                    1/1     Running     0          15m
rook-ceph        rook-ceph-mon-c-756fbf5c66-thcjq                   1/1     Running     0          13m
rook-ceph        rook-ceph-operator-5c47844cf-gzms8                 2/2     Running     2          19m
rook-ceph        rook-ceph-osd-0-7d48c6b97d-t725c                   2/2     Running     0          12m
rook-ceph        rook-ceph-osd-1-54797bdd48-zgkrw                   2/2     Running     0          12m
rook-ceph        rook-ceph-osd-2-7898d6cc4-wc2c2                    2/2     Running     0          12m
rook-ceph        rook-ceph-osd-prepare-node1-mczj7                  0/1     Completed   0          12m
rook-ceph        rook-ceph-osd-prepare-node2-tzrk6                  0/1     Completed   0          12m
rook-ceph        rook-ceph-osd-prepare-node3-824lx                  0/1     Completed   0          12m

При включении sidecar на rook-ceph-mon происходило что-то странное, и это было недоступно через конечные точки службы.

Я знаю, что это своего рода обходной путь. Жду лучшего ответа.

person Sunil Kpmbl    schedule 15.02.2021