Доступно с ограничениями в редакциях: Open/CE
Доступно без ограничений в редакциях: SE, SE+, Ultimate/EE
Входит в расширения: Хранение данных
Стадия жизненного цикла модуля: Предварительная версия (preview)
У модуля есть требования для установки
Работоспособность модуля гарантируется только при соблюдении системных требований. Использование в других условиях возможно, но стабильная работа в таких случаях не гарантируется.
Требования
К версии Kubernetes: 1.31 и выше.
К версии Deckhouse Platform: 1.72 и выше.
К версиям других модулей:
-
sds-node-configurator: 0.6.1 и выше.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия:
-
Обновление из версии 1 в 2:
Нужно удалить параметр
.enableThinProvisioning.
Параметры
Версия схемы: 2
-
-
объектsettings.backupModule backup settings
-
булевыйsettings.backup.enabledВключение резервного копирования БД модуля
По умолчанию:
true -
целое числоsettings.backup.retentionCountКоличество резервных копий для хранения
По умолчанию:
7 -
строкаsettings.backup.scheduleРасписание резервного копирования
По умолчанию:
0 3 * * *
-
-
объектsettings.dataNodesНастройки для узлов Linstor с данными
По умолчанию:
{}-
объектsettings.dataNodes.nodeSelector
Настройка аналогична
spec.nodeSelectorв Kubernetes.Если параметр не указан, поды для Linstor будут запущены на всех узлах.
Внимание! При изменении этого параметра не происходит переразмещение данных. Если узел с данными перестанет соответствовать
nodeSelector, данные на нем будут недоступны.По умолчанию:
{ "kubernetes.io/os": "linux" }
-
-
объектsettings.drbdPortRangeНастройки диапазона TCP-портов для DRBD
По умолчанию:
{}-
целое числоsettings.drbdPortRange.maxPortКонец диапазона портов DRBD
По умолчанию:
7999 -
целое числоsettings.drbdPortRange.minPortНачало диапазона портов DRBD
По умолчанию:
7000
-
-
строкаsettings.logLevelУровень логирования для приложений модуля
По умолчанию:
INFOДопустимые значения:
ERROR,WARN,INFO,DEBUG,TRACE -
булевыйsettings.newControlPlane
Использовать новый control-plane как бэкенд для модуля. После переключения в true возврат в false запрещён.
Включение доступно только на dev-сборках Deckhouse; на любом канале обновлений настройка отклоняется и игнорируется.
По умолчанию:
false -
строкаsettings.registrySchemeУстаревший параметр. Удалите его из ModuleConfig для Deckhouse версии выше 1.57.
По умолчанию:
https -
целое числоsettings.resyncSlotsPerNode
Сколько одновременных заливок (resync — передача содержимого тома по сети) допустимо на одном узле. Значение по умолчанию —
4;0означает отсутствие ограничения.Заливка — это передача содержимого тома по сети в копию, у которой данных нет или они устарели. Единица учёта — конец заливки (resync end): заливка между двумя узлами занимает один конец на отдающем узле (чтение своего диска и отдача в сеть) и один на принимающем (приём и запись на диск). Параметр ограничивает число концов на узле, поскольку узким местом является сетевая карта и диск конкретного узла, а не том, не реплика и не кластер целиком.
Если все узлы, способные отдать реплике данные, уже достигли предела, размещение этой реплики откладывается и повторяется позже; ничего при этом не прерывается. Уже идущая заливка никогда не останавливается — это отбросило бы всё уже переданное.
Тома, которые ещё создаются, никогда не задерживаются, но нагрузка от их заливок учитывается, чтобы восстановление существующего тома не перегружало узел, уже занятый созданием тома.
Лимит включён по умолчанию, потому что том, потерявший копию, восстанавливает её сам: уход узла заставляет лечиться сразу все тома, которые на нём лежали, — это и есть нагрузка, которую ограничивает параметр. Снижайте значение на узлах с медленной сетью или медленными дисками; наименьшее осмысленное значение —
2, при нём узел всё ещё может одновременно отдавать и принимать. Чем ниже лимит, тем больше реплик, которые иначе разместились бы сразу, ждут своей очереди, поэтому восстановление большого кластера занимает заметно больше времени.Внимание! Этот параметр и потолок скорости заливки DRBD настраиваются независимо друг от друга. Их произведение не должно превышать пропускную способность линка узла.
По умолчанию:
4Допустимые значения:
0 <= X -
массив строкsettings.storageClassLabelIgnoredPrefixes
Список префиксов ключей лейблов, которые НЕ должны пробрасываться (propagate — копироваться) с
ReplicatedStorageClassна управляемыйStorageClassв Kubernetes.Контроллер объединяет этот список с системным (system — служебным, неизменяемым) списком и при формировании лейблов
StorageClassотбрасывает любой лейблReplicatedStorageClass, ключ которого начинается с одного из префиксов объединённого списка.Сопоставление выполняется по
strings.HasPrefix(буквальное префиксное сравнение, без учёта структуры лейбла Kubernetes). Запись без завершающего/совпадает по подстроке, а не по полному ключу: например,teamотбросит иteam, иteam-id, иteam.example.com/.... Чтобы ограничить совпадение конкретным поддоменом, заканчивайте запись на/(например,argocd.argoproj.io/). Чтобы ориентироваться на точный ключ, пишите ключ целиком, помня, что он также покроет ключи, имя которых его расширяет (например,app.kubernetes.io/managed-byотбросит иapp.kubernetes.io/managed-by-foo).Системный префикс
kubernetes.io/покрывает только ключи, начинающиеся буквально наkubernetes.io/; зарезервированные K8s поддомены (subdomains) — например,topology.kubernetes.io/zoneилиnode.kubernetes.io/*— по умолчанию НЕ покрываются. При необходимости добавляйте их в этот список явно.Значения по умолчанию покрывают лейблы, которые обычно проставляют инструменты GitOps (Argo CD, Flux, Rancher Fleet), чтобы их реконсилеры (reconcilers — компоненты, приводящие фактическое состояние к желаемому) не конфликтовали с контроллером
sds-replicated-volumeза состояние лейблов на управляемомStorageClass.По умолчанию:
[ "argocd.argoproj.io/", "kustomize.toolkit.fluxcd.io/", "helm.toolkit.fluxcd.io/", "fleet.cattle.io/" ]
-