Работоспособность модуля гарантируется только при соблюдении системных требований. Использование в других условиях возможно, но стабильная работа в таких случаях не гарантируется.

Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

ReplicatedStorageClass

Scope: Cluster
Version: v1alpha1

Интерфейс управления StorageСlass для CSI-драйвера replicated.csi.storage.deckhouse.io. Ручное создание StorageClass для данного драйвера запрещено.
  • spec
    объект

    Defines a Kubernetes Storage class configuration.

    Note that this field is in read-only mode.

    • spec.reclaimPolicy
      строка

      Обязательный параметр

      Reclaim policy дочернего StorageClass. Может быть:

      • Delete (если PersistentVolumeClaim будет удален, вместе с ним удалится соответствующий PersistentVolume)
      • Retain (если PersistentVolumeClaim будет удален, соответствующий PersistentVolume останется нетронутым в статусе Released)

      Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.

      Допустимые значения: Delete, Retain

    • spec.replication
      строка

      Режим репликации StorageClass. Может быть:

      • None — в этом режиме репликация отключена, и данные существуют только в одном экземпляре.
      • Availability — режим репликации, при котором том остается доступным для чтения и записи, даже если одна из реплик тома становится недоступной. Данные хранятся в двух экземплярах на разных узлах. Важно: этот режим не гарантирует консистентность данных и может привести к split brain и потере данных при проблемах с сетевой связностью между узлами. Рекомендуется использовать только для некритичных данных и приложений, не требующих высокой надежности и целостности данных.
      • ConsistencyAndAvailability — режим репликации, при котором том остается доступным для чтения и записи, даже если одна из реплик тома становится недоступной. Данные хранятся в трех экземплярах на разных узлах. Этот режим обеспечивает защиту от потери данных при выходе из строя двух узлов, содержащих реплики тома, и гарантирует консистентность данных. Однако при потере двух реплик том переходит в режим “приостановки” ввода/вывода (suspend-io).

      Обратите внимание, что режимом репликации по умолчанию является ‘ConsistencyAndAvailability’. Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.

      По умолчанию: ConsistencyAndAvailability

      Допустимые значения: None, Availability, ConsistencyAndAvailability

    • spec.storagePool
      строка

      Обязательный параметр

      Имя Storage Pool в бэкенде LINSTOR.
    • spec.topology
      строка

      Обязательный параметр

      Настройки топологии для томов в создаваемом StorageClass. Может быть:

      • TransZonal — реплики для томов будут создаваться в разных зонах (по одной реплике на зону). Для использования этой топологии доступные зоны должны быть указаны в параметре zones, а на узлах кластера должен присутствовать лейбл topology.kubernetes.io/zone=<название зоны>.
      • Zonal — все реплики томов создаются в той же зоне, которую планировщик выбрал для размещения пода, использующего данный том. Рекомендуется использовать эту топологию в условиях высокого пинга и/или низкой пропускной способности сети между зонами.
      • Ignored — для размещения реплик томов не будет использоваться информация о топологии. Реплики могут размещаться на любых доступных узлах, но с ограничением: не более одной реплики определенного тома на один узел.

      Обратите внимание, что создать StorageClass с топологией ‘Ignored’ можно только если в кластере нет зон (нет узлов с лейблами topology.kubernetes.io/zone). Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.

      Для корректной работы системы лейблом ’topology.kubernetes.io/zone’ должны быть помечены либо все узлы кластера, либо ни один из них.

      Допустимые значения: TransZonal, Zonal, Ignored

    • spec.volumeAccess
      строка

      Режим доступа к данным. Может быть:

      • Local — в этом режиме запрещено создание пода на узлах, на которых отсутствует локальная реплика тома, используемого этим подом.
      • EventuallyLocal — в этом режиме том будет создан сразу после появления пода и назначения ему рабочего узла. При первоначальном создании пода учитываются настройки его топологии, и локальная реплика, по возможности, будет создана на том же узле, где размещен под. Однако может возникнуть ситуация, когда под создаётся на узле, на котором отсутствует локальная реплика тома. В таком случае под будет подключен по сети к существующим репликам тома, после чего, через 30 минут, на этом узле начнется создание локальной реплики тома, включающее копирование всех данных тома по сети с других реплик на этот узел.
      • PreferablyLocal — то же, что и в EventuallyLocal, за исключением того, что под будет постоянно подключен по сети к репликам тома, если он был создан на узле, где отсутствует локальная реплика тома (локальная реплика на этом узле создаваться не будет).
      • Any — в этом режиме том будет создан до появления пода и может быть размещен на любом доступном узле без учета настроек топологии у пода, который будет использовать его в будущем. В случае, если под создан на узле, где отсутствует локальная реплика тома, под будет постоянно подключен по сети к репликам тома.

      Обратите внимание, что режимом доступа по умолчанию является ‘PreferablyLocal’.

      Важно: при использовании настроек EventuallyLocal, PreferablyLocal и Any доступ к данным по сети разрешен только в пределах одной зоны. Запрещено создание пода в зоне, где отсутствует реплика тома.

      Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.

      По умолчанию: PreferablyLocal

      Допустимые значения: Local, EventuallyLocal, PreferablyLocal, Any

    • spec.zones
      массив строк

      Список зон, в которых будут созданы реплики тома. Контроллер повесит лейбл с именем StorageClass на те узлы, на которых будет возможно создать реплики томов.

      Обратите внимание, что для режимов репликации ‘Availability’ и ‘ConsistencyAndAvailability’ вам необходимо указать 3 зоны, если выбрана топология TransZonal. Обратите внимание, что данный параметр является обязательным, если выбрана топология TransZonal. Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.

ReplicatedStoragePool

Scope: Cluster
Version: v1alpha1

Интерфейс для управления Storage Pool в бэкенде LINSTOR.
  • spec
    объект
    Defines desired rules for Linstor’s Storage-pools.
    • spec.lvmVolumeGroups
      массив объектов

      Обязательный параметр

      Список LVMVolumeGroup-ресурсов, Volume Group’ы/Thin-pool’ы которых будут использованы для создания Storage-pool’ов в бэкенде LINSTOR.

      Обратите внимание, что каждый LVMVolumeGroup-ресурс обязан иметь тот же тип (Thin/Thick), что указан в поле ‘Spec.Type’ текущего ресурса.

      • spec.lvmVolumeGroups.name
        строка
        Имя ресурса LVMVolumeGroup.

        Минимальная длина: 1

        Шаблон: ^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$

      • spec.lvmVolumeGroups.thinPoolName
        строка
        Имя выбранного Thin-pool в рамках указанного LVMVolumeGroup. Обязательное поле если вы создаёте ReplicatedStoragePool с типом LVMThin.
    • spec.type
      строка

      Обязательный параметр

      Определяет тип Volume’ов. Может быть:

      • LVM (для классических LVM-томов)
      • LVMThin (для Thin-томов)

      Допустимые значения: LVM, LVMThin