Теперь, когда плагин постоянного тома Kubernetes CephFS в дереве устарел, как я могу использовать Rook, чтобы получить такое же поведение при монтировании?
Начиная с Kubernetes v1.28 плагин постоянного тома CephFS в дереве устарел. Официальное предложение — вместо этого использовать сторонний драйвер CSI. Однако я не уверен, как я могу использовать, например, Rook в качестве замены оригинальному плагину Kubernetes in-tree.
Плагин имеет возможность монтировать файловую систему Ceph, указанную с использованием адреса mon, пользователя и секрета. Монтирование также выполняется по локальному пути и не требует указания квот хранилища.
Может ли кто-нибудь привести простой пример того, как можно достичь той же или аналогичной функциональности, что и исходный плагин CephFS внутри дерева Kubernetes, используя Rook и драйвер Ceph CSI?
1 ответ
После работы с плагином Ceph CSI с использованием rook, я думаю, что его использование отличается от исходного плагина Kubernetes внутри дерева. В частности, способ, которым плагин CSI управляет предоставлением хранилища в выбранной файловой системе Ceph, заключается в создании/удалении подкаталогов в FS. В частности, данные созданного постоянного тома хранятся под/volumes/csi/
. Полный путь к подтому можно найти в атрибутах постоянного тома, но по существу файловая система частично (подпути в разделе/volumes
по крайней мере), управляемый драйвером CSI.
Если раньше вы указывали подпуть для монтирования в контейнер вручную, то с помощью драйвера CSI вместо этого вы должны были указать имя тома, которое затем будет ссылаться на определенный подпуть в файловой системе (созданной и управляемой драйвером CSI).
Чтобы совместно использовать том/данные в разных контейнерах, вам потребуется повторно использовать одно и то же имя постоянного тома (см. параметр VolumeName спецификации PVC ) и убедиться, что постоянный том имеетpersistentVolumeReclaimPolicy
из . Если ваша политика по умолчаниюDelete
вам нужно будет отредактировать спецификацию PV и изменить ее наRetain
.
Эта процедура несколько описана в документации Rook, более подробно здесь. Следует отметить, что кажется, что вы не можете вручную установитьvolumeName
PV при создании из PVC. Я не уверен, что вы могли бы создать PV вручную, а не через PVC.
Также может быть более простой способ добиться этого, с которым я не знаком. Основная цель — совместное использование данных между несколькими контейнерами и самим хостом (с использованиемmount -t ceph
). Затем данные будут записываться с хоста и считываться контейнерами.