Модуль Ceph CSI - Ceph Block Device (shturval-ceph-rbd)
О сервисе
| Параметр | Значение |
|---|---|
| Название в интерфейсе | Модуль Ceph CSI - Ceph Block Device |
| Системное название (идентификатор) | shturval-ceph-rbd |
| Назначение в кластере | Динамический провижининг блоковых томов Ceph RBD; подключение RBD-образов из кластера Ceph. |
| Критический | Нет |
| Публичный репозиторий | Ceph CSI |
| Зависимости | shturval-networking |
| Неймспейс | ceph-rbd |
Назначение
shturval-ceph-rbd — модуль Ceph CSI для Ceph Block Device (RBD). Позволяет подключать блочные тома Ceph как PersistentVolume по запросу через StorageClass.
Где настраивать
Сервисы и репозитории → Установленные сервисы → shturval-ceph-rbd → Управлять.
Настройка классов хранилища: StorageClasses (классы хранилища). В customvalues задаются csiConfig (clusterID, monitors), секрет с adminID/adminKey и при необходимости cephconf. Требуемые права пользователя Ceph (capabilities) для RBD описаны в документации Ceph CSI.
Установка и настройка
Для работы shturval-networking должен быть запущен в кластере. При установке рекомендуется создать отдельный неймспейс для чарта.
Если модуль Ceph CSI был установлен при создании кластера, ручная настройка обычно не требуется. Для включения в уже созданном кластере используйте Сервисы и репозитории → Установленные сервисы или установите чарт shturval-ceph-rbd из Доступных чартов. При необходимости переопределения параметров чарта, примените изменения через ShturvalServicePatch.
В Спецификации сервиса укажите customvalues:
Пример customvalues (Ceph RBD)
csiConfig:
- clusterID: <ваше значение>
monitors:
- <ваше значение>
storageClass:
create: true
name: <ваше значение>
clusterID: <ваше значение>
dataPool: ""
pool: <ваше значение>
imageFeatures: ""
mounter: ""
volumeNamePrefix: ""
encrypted: ""
encryptionKMSID: ""
mapOptions: ""
unmapOptions: ""
provisionerSecret: <ваше значение>
provisionerSecretNamespace: <ваше значение>
controllerExpandSecret: <ваше значение>
controllerExpandSecretNamespace: <ваше значение>
nodeStageSecret: <ваше значение>
nodeStageSecretNamespace: <ваше значение>
fstype: ext4
reclaimPolicy: <ваше значение>
allowVolumeExpansion: true
mountOptions: []
selinuxMount: true
secret:
create: true
name: <ваше значение>
userID: <ваше значение>
userKey: <ваше значение>
cephconf: |
<ваша конфигурация кластера Ceph>
| Параметр | Описание | Пример |
|---|---|---|
csiConfig[].clusterID |
Уникальный идентификатор кластера Ceph | my-cluster-id |
csiConfig[].monitors |
Список IP-адресов мониторов Ceph | 192.168.1.1 |
secret.name |
Имя создаваемого Secret | cephrbd-secret |
secret.userID |
ID сервисной учётной записи Ceph | client.admin |
secret.userKey |
Ключ сервисной учётной записи Ceph | sdfdff |
cephconf |
Конфигурация Ceph в текстовом формате | [global] auth cluster required = cephx |
storageClass.name |
Имя создаваемого StorageClass | csi-cephrbd-sc |
storageClass.clusterID |
Идентификатор кластера Ceph | cluster-id |
storageClass.dataPool |
Erasure-coded pool для данных, если используется отдельный EC pool | ec-data-pool |
storageClass.pool |
Пул Ceph для RBD-образов | kuberbd |
storageClass.imageFeatures |
Возможности RBD-образа (layering, journaling, exclusive-lock, object-map, fast-diff, deep-flatten) |
layering |
storageClass.mounter |
Тип монтирования, например rbd-nbd; пустое значение использует поведение по умолчанию |
rbd-nbd |
storageClass.volumeNamePrefix |
Префикс для имён RBD-образов | shturval- |
storageClass.encrypted |
Включение шифрования тома строковым значением true/false |
“true” |
storageClass.mapOptions |
Опции map для krbd/nbd | krbd:lock_on_read |
storageClass.unmapOptions |
Опции unmap для krbd/nbd | krbd:force |
storageClass.fstype |
Тип файловой системы тома (по умолчанию ext4) | ext4 |
storageClass.reclaimPolicy |
Политика удаления тома (Retain, Delete, Recycle) | Delete |
selinuxMount |
Монтирование /etc/selinux хоста в поды для файловых систем с SELinux |
true |
Права доступа сервисной учётной записи
Минимальные права для пользователя Ceph (client.kuberbd):
mon 'profile rbd'
osd 'profile rbd pool=kuberbd'
Особенности настройки
Поле cephconf используйте для параметров клиента Ceph, общих для кластера (аутентификация, сеть и т.д.) — см. примеры в документации Ceph CSI для RBD.
При необходимости подключить несколько экземпляров Ceph RBD в одном кластере:
- Установите каждый экземпляр в отдельный неймспейс.
- Укажите уникальное значение параметра
driverNameдля каждого экземпляра. - Установите уникальный порт в параметре
nodePlugin.httpMetrics.ContainerPortдля каждого экземпляра.
Как развернуть этот сервис — Как развернуть новый сервис.