Стадия жизненного цикла модуля: Preview
Работоспособность модуля гарантируется только при соблюдении системных требований. Использование в других условиях возможно, но стабильная работа в таких случаях не гарантируется.
Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
ReplicatedStorageClass
Scope: Cluster
Version: v1alpha1
-
объект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
-
объектspecDefines 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
-