Почитав документацию rook и все девять страниц открытых багрепортов на GitHub сел перечитывать
https://habr.com/ru/post/452174/ с позиции теоретика. Обоснованное закидывание тапками приветствуется.
> ceph содержит более 1000 параметров для настройки, в тоже время через rook мы можем править лишь меньшую часть из них
> Пример: некорректная работа crush tunables после обновления с hummer на jewel
Если я правильно понял
https://rook.io/docs/rook/v1.3/ceph-advanced-configuration.html#custom-cephconf-settings то задать свои опции вполне можно через ConfigMap.
> OSD падает сыпя ошибками себе под ноги. Вы подозреваете, что проблема в одном из параметров в конфиге, хотите поменять конфиг для конкретного демона, но не можете, потому что у вас kubernetes и DaemonSet.
Почему просто не прибить OSD
https://rook.io/docs/rook/v1.3/ceph-osd-mgmt.html которая сыпет ошибками? Да, ребаланс, но кластер должен справляться с ребалансом в результате удаления OSD - это штатная ситуация для Ceph. Если кластер не может с этим справиться без негативных последствий - проблема не в rook.
> Для некоторых настроек и тестов производительности необходимо подключаться непосредственно к сокету osd демона. В случае Rook необходимо для начала найти нужный контейнер, после этого зайти в него, обнаружить отсутствующий для debug тулинг и очень расстроиться.
Сокеты же в overlayfs доступных с хоста (например в случае containerd можно посмотреть в /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/).
Мы же можем на хосте поставить тулинг и указать путь до сокета в доступной с хоста overlayfs?
> Проблемы с сетевым взаимодействием v1
> Для ceph рекомендуется использовать 2х10гб сеть. Одну для клиентского трафика, другую для служебных нужд ceph (ребаланс). Если вы живёте с ceph на baremetal, то это разделение легко настраивается, если вы живете с Rook, то с разделением по сетям вызовет у вас проблемы, в связи с тем, что далеко не каждый конфиг кластера позволяет подать в pod две разных сети.
Настраивается как обычно через ceph.conf (см. выше) и указанием hostNetwork: true, нет?
> Специфичные настройки серверов для ceph
> ceph бывает нужен специфический тюнинг хоста.
> Пример: настройки sysctl и тот же JumboFrame, некоторые из этих настроек могут негативно влиять на ваш payload.
Да, возразить тут нечего.
> Пример: OSD падает по ООМ, начинается ребаланс, после этого падают следующие.
> Решение: Поднимать OSD по одной, дожидаться её полного включения в кластер и поднимать следующие. (Подробнее в докладе Ceph. Анатомия катастрофы).
> В случае baremetal установки это делается просто руками, в случае Rook и одной OSD на ноду проблем особо нет, проблемы с поочередным поднятием возникнут если OSD > 1 на ноду.
> Сложность подбора лимитов для ceph демонов
> В случае занижения лимитов вы получите медленный кластер, в случае выставления unlim вы получите активное использование CPU при ребалансе, что будет плохо влиять на ваши приложения в kubernetes.
> Долгий ребаланс — долгие тормоза приложений
Да, с rook единственное решение тут видимо только заливать проблему деньгами. Ради удобства же 😀
> Реальная необходимость Rook остается под вопросом
> Если вы на своих серверах, то управление ceph будет удобнее без kubernetes.
На фоне оставшихся официальных вариантов с развёртыванием вручную, cephadm, и ceph-ansible с zap в плейбуке, rook уже не видится таким уж плохим. Если уж новый-модный cephadm это один хрен docker/podman, то до kubernetes тут уже рукой подать.