Стадия жизненного цикла модуля: General Availability
Доступно в редакциях: CE, SE, SE+, EE, CSE Pro (1.67)
Ceph — это масштабируемая распределённая система хранения с высокой доступностью и отказоустойчивостью. Deckhouse Kubernetes Platform (DKP) обеспечивает интеграцию Ceph-кластера при помощи модуля csi-ceph. Это даёт возможность динамически управлять хранилищем и использовать StorageClass на основе RADOS Block Device (RBD) или CephFS.
На этой странице представлены инструкции по подключению Ceph в Deckhouse, настройке аутентификации, созданию объектов StorageClass, а также проверке работоспособности хранилища.
Для работы со снимками требуется подключенный модуль snapshot-controller.
Миграция с модуля ceph-csi
При переключении на модуль csi-ceph с модуля ceph-csi выполняется автоматическая миграция, но её запуск требует предварительной подготовки:
-
Установите количество реплик в ноль для всех операторов (redis, clickhouse, kafka и др.). Исключение: оператор
prometheusбудет отключён автоматически. -
Отключите модуль
ceph-csiи включитеcsi-ceph. -
Дождитесь завершения операции. В логах DKP должно появиться сообщение “Finished migration from Ceph CSI module”.
-
Проверьте работоспособность. Для этого создайте тестовые поды и PVC для проверки CSI.
-
Верните операторы в рабочее состояние (установите количество реплик обратно).
сли Ceph StorageClass был создан не через ресурс CephCSIDriver, потребуется ручная миграция. Обратитесь в техподдержку.
Подключение к Ceph-кластеру
Для подключения Ceph-кластера следуйте пошаговым инструкциям ниже. Все команды выполняйте на машине с административным доступом к API Kubernetes.
-
Выполните команду для активации модуля
csi-ceph:d8 s module enable csi-ceph -
Дождитесь перехода модуля в состояние
Ready:d8 k get module csi-ceph -w -
Убедитесь, что все поды в пространстве имён
d8-csi-cephнаходятся в состоянииRunningилиCompletedи развёрнуты на всех узлах кластера:d8 k -n d8-csi-ceph get pod -owide -w -
Для настройки подключения к Ceph-кластеру примените ресурс CephClusterConnection.
Пример команды:
d8 k apply -f - <<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: CephClusterConnection metadata: name: ceph-cluster-1 spec: # FSID/UUID Ceph-кластера. # Получить FSID/UUID Ceph-кластера можно с помощью команды `ceph fsid`. clusterID: 014df517-39d1-4453-b7b3-9930c563627c # Список IP-адресов ceph-mon в формате 10.0.0.10:6789. monitors: - 10.0.0.10:6789 # Имя пользователя без `client.`. # Получить имя пользователя можно с помощью команды `ceph auth list`. userID: admin # Ключ авторизации, соответствующий userID. # Получить ключ авторизации можно с помощью команды `ceph auth get-key client.admin`. userKey: <your-ceph-auth-key> EOF -
Проверьте создание подключения командой (
Phaseдолжна быть в статусеCreated):d8 k get cephclusterconnection ceph-cluster-1 -
Создайте объект StorageClass при помощи ресурса CephStorageClass. Ручное создание StorageClass без использования CephStorageClass может привести к ошибкам.
Пример создания StorageClass на основе RBD:
d8 k apply -f - <<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: CephStorageClass metadata: name: ceph-rbd-sc spec: clusterConnectionName: ceph-cluster-1 reclaimPolicy: Delete type: RBD rbd: defaultFSType: ext4 pool: ceph-rbd-pool EOFПример создания StorageClass на основе файловой системы Ceph:
d8 k apply -f - <<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: CephStorageClass metadata: name: ceph-fs-sc spec: clusterConnectionName: ceph-cluster-1 reclaimPolicy: Delete type: CephFS cephFS: fsName: cephfs EOF -
Проверьте, что созданные ресурсы CephStorageClass перешли в состояние
Created:d8 k get cephstorageclassВ результате будет выведена информация о созданных ресурсах CephStorageClass:
NAME PHASE AGE ceph-rbd-sc Created 1h ceph-fs-sc Created 1h -
Проверьте созданный StorageClass:
d8 k get scВ результате будет выведена информация о созданном StorageClass:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE ceph-rbd-sc rbd.csi.ceph.com Delete WaitForFirstConsumer true 15s ceph-fs-sc rbd.csi.ceph.com Delete WaitForFirstConsumer true 15s
Настройка подключения к Ceph-кластеру завершена. Вы можете использовать созданный StorageClass для создания PersistentVolumeClaim в ваших приложениях.