Модуль Ceph CSI Operator (shturval-ceph-csi)
О сервисе
| Параметр | Значение |
|---|---|
| Название в интерфейсе | Модуль Ceph CSI Operator |
| Системное название (идентификатор) | shturval-ceph-csi |
| Назначение в кластере | Управление драйверами CephFS и RBD через оператор. |
| Критический | Нет |
| Режим по умолчанию | absent |
| Публичный репозиторий | ceph-csi-operator |
| Зависимости | shturval-ceph-csi-crds, shturval-networking |
| Неймспейс | ceph-csi-operator |
CRD должны быть установлены отдельным сервисом shturval-ceph-csi-crds (в интерфейсе — CRDs для модуля Ceph CSI Operator (csi.ceph.io)) в том же неймспейсе ceph-csi-operator.
Назначение
shturval-ceph-csi — модуль Ceph CSI Operator. Позволяет подключать тома CephFS и блочные тома Ceph RBD как PersistentVolume по запросу через StorageClass. Подходит для файловых и блочных хранилищ на базе Ceph.
По умолчанию при обновлении до 2.15.0 выполняется миграция сервисов shturval-ceph-cephfs и shturval-ceph-rbd на этот сервис. При необходимости вы можете провести миграцию вручную до запуска обновления — см. инструкцию. Существующие тома при этом продолжают работать.
Где настраивать
Сервисы и репозитории → Установленные сервисы → shturval-ceph-csi → Управлять.
Настройка классов хранилища: StorageClasses (классы хранилища). Параметры подключения к Ceph (мониторы, секреты с ключами, классы хранилища) вы можете задать в customvalues. По настроенной конфигурации в кластере будут созданы ресурсы CephConnection, ClientProfile и Driver.
Установка и настройка
Для работы сервиса shturval-ceph-csi в кластере должны быть запущены shturval-networking и shturval-ceph-csi-crds.
Для включения сервиса в кластере перейдите Сервисы и репозитории → Установленные сервисы или установите чарты shturval-ceph-csi-crds и shturval-ceph-csi из Доступных чартов - вкладка shturval.
В Спецификации сервиса задайте параметры подключения к Ceph, например:
csi:
drivers:
cephfs:
enabled: true
rbd:
enabled: true
nfs:
enabled: true
clusters:
- name: ceph-connection
monitors:
- "<monitor-1>:6789"
- "<monitor-2>:6789"
- "<monitor-3>:6789"
clientProfiles:
- name: <fsid-кластера-ceph>
cephFs:
subVolumeGroup: csi
rbd: {}
nfs: {}
secrets:
- name: csi-cephfs-secret
userID: csi-cephfs
userKey: <ключ-пользователя-cephfs>
- name: csi-rbd-secret
userID: csi-rbd
userKey: <ключ-пользователя-rbd>
- name: csi-nfs-secret
userID: csi-nfs
userKey: <ключ-пользователя-nfs>
storageClasses:
- name: shturval-cephfs
driver: cephfs
clusterID: <fsid-кластера-ceph>
secretName: csi-cephfs-secret
reclaimPolicy: Delete
parameters:
fsName: <имя-файловой-системы>
- name: shturval-rbd
driver: rbd
clusterID: <fsid-кластера-ceph>
secretName: csi-rbd-secret
reclaimPolicy: Delete
allowVolumeExpansion: true
parameters:
pool: <имя-пула>
imageFeatures: layering
- name: shturval-nfs
driver: nfs
clusterID: <fsid-кластера-ceph>
secretName: csi-nfs-secret
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
mountOptions:
- nfsvers=4.1
- port=2049
parameters:
fsName: <имя-файловой-системы>
nfsCluster: <имя-nfs-кластера>
server: "<адрес-nfs-сервера>"
| Параметр | Описание | Пример |
|---|---|---|
drivers.cephfs.enabled | Включить драйвер CephFS (cephfs.csi.ceph.com) и создать ServiceAccount драйвера | true |
drivers.rbd.enabled | Включить драйвер RBD (rbd.csi.ceph.com) и создать ServiceAccount драйвера | true |
drivers.nfs.enabled | Включить драйвер NFS (nfs.csi.ceph.com) и создать ServiceAccount драйвера | true |
clusters[].name | Имя ресурса CephConnection | ceph-connection |
clusters[].monitors | Адреса мониторов Ceph, host:port | <monitor-1>:6789 |
clusters[].clientProfiles[].name | Имя ClientProfile. То же значение укажите в clusterID класса хранилища | <fsid-кластера-ceph> |
clusters[].clientProfiles[].cephFs.subVolumeGroup | Группа подтомов CephFS для динамических томов | csi |
clusters[].clientProfiles[].rbd | Пустой объект включает блочные тома в этом профиле | {} |
clusters[].clientProfiles[].nfs | Пустой объект включает NFS в этом профиле | {} |
clusters[].secrets[].name | Имя Secret в неймспейсе ceph-csi-operator с учётными данными Ceph | csi-cephfs-secret |
clusters[].secrets[].userID | ID сервисной учётной записи Ceph, без префикса client. | csi-cephfs |
clusters[].secrets[].userKey | Ключ сервисной учётной записи Ceph | <ключ-пользователя-cephfs> |
storageClasses[].name | Имя StorageClass | shturval-cephfs |
storageClasses[].driver | Короткое имя драйвера: cephfs, rbd или nfs | nfs |
storageClasses[].clusterID | ID кластера, которое должно совпадать с clientProfiles[].name | <fsid-кластера-ceph> |
storageClasses[].secretName | Имя Secret из clusters[].secrets | csi-nfs-secret |
storageClasses[].reclaimPolicy | Политика удаления тома: Delete или Retain | Delete |
storageClasses[].allowVolumeExpansion | Разрешить увеличение размера тома | true |
storageClasses[].volumeBindingMode | Когда привязывать том: Immediate или WaitForFirstConsumer | Immediate |
storageClasses[].mountOptions | Параметры монтирования тома NFS | nfsvers=4.1 |
storageClasses[].parameters.fsName | Имя файловой системы CephFS. Требуется для классов cephfs и nfs | <имя-файловой-системы> |
storageClasses[].parameters.pool | Пул RBD для динамических томов | <имя-пула> |
storageClasses[].parameters.imageFeatures | Возможности образа RBD. layering нужен, чтобы клонировать том и снимать снапшот | layering |
storageClasses[].parameters.nfsCluster | Имя NFS-кластера | <имя-nfs-кластера> |
storageClasses[].parameters.server | Адрес NFS-сервера | <адрес-nfs-сервера> |
Если необходимо выключить shturval-ceph-csi, до перевода в режим Выкл (Absent) удалите PVC, которые используют классы Ceph. После того как SSC отработает, в неймспейсе ceph-csi-operator не должно остаться ресурса ClientProfile.
При необходимости переопределения параметров примените изменения через ShturvalServicePatch (SSP).
В созданном StorageClass нельзя переопределить через SSP: driver, parameters, clusterID, secretName и volumeBindingMode, остальные параметры доступны для обновления: reclaimPolicy, allowVolumeExpansion и mountOptions.
Конфигурации созданных CephConnection, ClientProfile, Secret и Driver с теми же именами доступны для обновления.
Объект, удаленный из спецификации или записанный с новым именем, будет удален из кластера. StorageClass и PVC при этом в кластере не удаляются.
Права доступа сервисной учётной записи
Минимальные права пользователя Ceph для CephFS (client.csi-cephfs):
mon 'allow r'
mgr 'allow rw'
mds 'allow rws'
osd 'allow rw pool=cephfs_data, allow rw pool=cephfs_metadata'
Минимальные права для RBD (client.csi-rbd):
mon 'profile rbd'
osd 'profile rbd pool=<имя-пула>'
Миграция при обновлении до 2.15.0
Миграция выполняется при обновлении системных сервисов до 2.15.0 и на кластере управления, и на клиентском кластере платформы:
- Если shturval-ceph-cephfs и shturval-ceph-rbd в режиме Выкл (Absent) или их нет в кластере, объекты этих сервисов удаляются. shturval-ceph-csi остаётся в режиме Выкл (Absent): объекты оператора не создаются, неймспейс и секреты не меняются.
- Если shturval-ceph-cephfs и shturval-ceph-rbd в режиме Авто (Auto) или Ручной (Manual), shturval-ceph-csi включается в режим Авто (Auto). Режим Ручной (Manual) на shturval-ceph-csi не переносится.
Неймспейсы ceph-fs и ceph-rbd и секреты в них сохраняются, StorageClass не меняется: уже созданные тома продолжают работать.
Если в конфигурации нет адресов мониторов и clusterID или у одного clusterID разные списки мониторов, миграция останавливается. Сервисы shturval-ceph-cephfs и shturval-ceph-rbd при этом не переводятся в режим Выкл.