Модуль 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>

Важно: Для MicroCeph не оставляйте storageClass.imageFeatures пустой строкой (imageFeatures: ""). Если параметр не требуется, удалите его из customvalues. Если требуется — укажите поддерживаемые возможности RBD-образа. Пустое значение может привести к ошибке подключения RBD.

ПараметрОписаниеПример
csiConfig[].clusterIDУникальный идентификатор кластера Cephmy-cluster-id
csiConfig[].monitorsСписок IP-адресов мониторов Ceph192.168.1.1
secret.nameИмя создаваемого Secretcephrbd-secret
secret.userIDID сервисной учётной записи Cephclient.admin
secret.userKeyКлюч сервисной учётной записи Cephsdfdff
cephconfКонфигурация Ceph в текстовом формате[global] auth cluster required = cephx
storageClass.nameИмя создаваемого StorageClasscsi-cephrbd-sc
storageClass.clusterIDИдентификатор кластера Cephcluster-id
storageClass.dataPoolErasure-coded pool для данных, если используется отдельный EC poolec-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/nbdkrbd:lock_on_read
storageClass.unmapOptionsОпции unmap для krbd/nbdkrbd:force
storageClass.fstypeТип файловой системы тома (по умолчанию ext4)ext4
storageClass.reclaimPolicyПолитика удаления тома (Retain, Delete, Recycle)Delete
selinuxMountМонтирование /etc/selinux хоста в поды для файловых систем с SELinuxtrue

Права доступа сервисной учётной записи

Минимальные права для пользователя Ceph (client.kuberbd):

mon 'profile rbd'
osd 'profile rbd pool=kuberbd'

Особенности настройки

Поле cephconf используйте для параметров клиента Ceph, общих для кластера (аутентификация, сеть и т.д.) — см. примеры в документации Ceph CSI для RBD.

При необходимости подключить несколько экземпляров Ceph RBD в одном кластере:

  1. Установите каждый экземпляр в отдельный неймспейс.
  2. Укажите уникальное значение параметра driverName для каждого экземпляра.
  3. Установите уникальный порт в параметре nodePlugin.httpMetrics.ContainerPort для каждого экземпляра.

Как развернуть этот сервис — Как развернуть новый сервис.