Доступно с ограничениями в редакциях: CE
Доступно без ограничений в редакциях: SE, SE+, EE, CSE Lite (1.73), CSE Pro (1.73)
Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
Включение модуля
Для включения модуля sds-local-volume выполните следующие шаги:
Все команды должны быть выполнены на машине с доступом к API Kubernetes и правами администратора.
-
Включите модуль
sds-local-volume:d8 k apply -f - <<EOF apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: sds-local-volume spec: enabled: true version: 2 EOF -
Дождитесь перехода модуля
sds-local-volumeв состояниеReady:d8 k get modules sds-local-volume -w -
Проверьте, что поды модуля запущены:
d8 k -n d8-sds-local-volume get pod -owide d8 k -n d8-sds-node-configurator get pod -o wide
Подробные инструкции по настройке модуля см. в разделе Быстрый старт.
Требования
К версии Deckhouse: 1.72 и выше.
К версиям других модулей:
-
sds-node-configurator: 0.6.1 и выше. -
snapshot-controller: любая версия.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия:
-
Обновление из версии 1 в 2:
Нужно удалить параметр
.enableThinProvisioning.
Параметры
Версия схемы: 2
-
-
объектsettings.dataNodesНастройки локальных томов csi на узлах с данными
По умолчанию:
{}-
объектsettings.dataNodes.nodeSelector
То же, что и в параметре
spec.nodeSelectorподов в Kubernetes.Если параметр опущен, локальный том csi будет размещен на всех узлах.
Внимание! Изменение этого параметра не приводит к перераспределению данных. Если узел с данными больше не соответствует «nodeSelector», данные на этом узле станут недоступными.
По умолчанию:
{ "kubernetes.io/os": "linux" }
-
-
строкаsettings.logLevelУровень логирования модуля.
По умолчанию:
DEBUGДопустимые значения:
ERROR,WARN,INFO,DEBUG,TRACE -
массив строкsettings.storageClassLabelIgnoredPrefixes
Список префиксов ключей лейблов, которые НЕ должны пробрасываться (propagate — копироваться) с
LocalStorageClassна управляемыйStorageClassв Kubernetes.Контроллер объединяет этот список с системным (system — служебным, неизменяемым) списком и при формировании лейблов
StorageClassотбрасывает любой лейблLocalStorageClass, ключ которого начинается с одного из префиксов объединённого списка.Сопоставление выполняется по
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-local-volumeза состояние лейблов на управляемомStorageClass.По умолчанию:
[ "argocd.argoproj.io/", "kustomize.toolkit.fluxcd.io/", "helm.toolkit.fluxcd.io/", "fleet.cattle.io/" ]
-