Модуль Ceph CSI - Ceph File System (shturval-ceph-cephfs)
О сервисе
| Параметр | Значение |
|---|---|
| Название в интерфейсе | Модуль Ceph CSI - Ceph File System |
| Системное название (идентификатор) | shturval-ceph-cephfs |
| Назначение в кластере | Динамический провижининг томов Ceph File System (CephFS); подключение общих файловых томов из кластера Ceph. |
| Критический | Нет |
| Публичный репозиторий | Ceph CSI |
| Зависимости | shturval-networking |
| Неймспейс | ceph-fs |
Назначение
shturval-ceph-cephfs — модуль Ceph CSI для Ceph File System. Позволяет подключать тома CephFS как PersistentVolume по запросу через StorageClass. Подходит для общих хранилищ на базе Ceph.
Где настраивать
Сервисы и репозитории → Установленные сервисы → shturval-ceph-cephfs → Управлять.
Настройка классов хранилища: StorageClasses (классы хранилища). Параметры Ceph (clusterID, monitors, секреты с ключами) задаются в customvalues. Требуемые права пользователя Ceph (capabilities) для CephFS описаны в документации Ceph CSI.
Установка и настройка
Для работы shturval-networking должен быть запущен в кластере. При установке рекомендуется создать отдельный неймспейс для чарта.
Если модуль Ceph CSI был установлен при создании кластера, ручная настройка обычно не требуется. Для включения в уже созданном кластере используйте Сервисы и репозитории → Установленные сервисы или установите чарт shturval-ceph-cephfs из Доступных чартов.
При необходимости переопределения параметров чарта, примените изменения через ShturvalServicePatch.
В Спецификации сервиса укажите customvalues:
Пример customvalues (CephFS)
csiConfig:
- clusterID: <ваше значение>
monitors:
- <ваше значение>
secret:
create: true
name: <ваше значение>
adminID: <ваше значение>
adminKey: <ваше значение>
cephconf: |
<ваша конфигурация кластера Ceph>
# Workaround for http://tracker.ceph.com/issues/23446
fuse_set_user_groups = false
# Увеличивает размер буфера записи ceph-fuse.
fuse_big_writes = true
storageClass:
create: true
name: <ваше значение>
clusterID: <ваше значение>
fsName: <ваше значение>
volumeNamePrefix: <ваше значение>
provisionerSecret: <ваше значение>
controllerExpandSecret: <ваше значение>
nodeStageSecret: <ваше значение>
reclaimPolicy: <ваше значение>
allowVolumeExpansion: true
| Параметр | Описание | Пример |
|---|---|---|
csiConfig[].clusterID |
Уникальный идентификатор кластера Ceph | my-cluster-id |
csiConfig[].monitors |
Список IP-адресов мониторов Ceph | 192.168.1.1 |
secret.name |
Имя создаваемого Secret | ceph-secret |
secret.adminID |
ID сервисной учётной записи Ceph | client.admin |
secret.adminKey |
Ключ сервисной учётной записи Ceph | sdfdff |
cephconf |
Конфигурация Ceph в текстовом формате | [global] auth cluster required = cephx |
storageClass.name |
Имя создаваемого StorageClass | csi-cephfs-sc |
storageClass.clusterID |
Идентификатор кластера Ceph | cluster-id |
storageClass.fsName |
Имя файловой системы CephFS | myfs |
storageClass.volumeNamePrefix |
Префикс для имён томов | shturval- |
storageClass.provisionerSecret |
Secret с учётными данными Ceph для провижининга | cephfs-secret |
storageClass.controllerExpandSecret |
Secret для расширения томов | ceph-expand-secret |
storageClass.nodeStageSecret |
Secret для монтирования тома на узле | csi-cephfs-secret |
storageClass.reclaimPolicy |
Политика удаления тома (Retain, Delete, Recycle) | Delete |
Права доступа сервисной учётной записи
Минимальные права для пользователя Ceph (client.kubecephfs):
mon 'allow r'
mgr 'allow rw'
mds 'allow rws'
osd 'allow rw pool=cephfs_data, allow rw pool=cephfs_metadata'
Особенности настройки
Блок cephconf в customvalues задаёт текстовую конфигурацию клиента Ceph (секции [global] и при необходимости параметры для ceph-fuse / монтирования). Типовые дополнения (буферы FUSE, fuse_big_writes и т.д.) см. в документации Ceph CSI и примерах values для вашей версии драйвера; при миграции со старой документации проверьте актуальность ключей для выбранного режима монтирования (FUSE vs kernel).
При необходимости подключить несколько экземпляров CephFS в одном кластере:
- Установите каждый экземпляр в отдельный неймспейс.
- Укажите уникальное значение параметра
driverNameдля каждого экземпляра. - Установите уникальный порт в параметре
nodePlugin.httpMetrics.ContainerPortдля каждого экземпляра.
Как развернуть этот сервис — Как развернуть новый сервис.