Доступно с ограничениями в редакциях:  Open/CE

Доступно без ограничений в редакциях:  SE, SE+, Ultimate/EE

Входит в расширения:  Хранение данных

Стадия жизненного цикла модуля: Предварительная версия (preview)

У модуля есть требования для установки

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

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули» откройте модуль sds-replicated-volume и включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля
  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля sds-replicated-volume:

    d8 system module enable sds-replicated-volume
  • С помощью ModuleConfig sds-replicated-volume.

    Установите spec.enabled в true или false в ModuleConfig sds-replicated-volume (при необходимости создайте его).

    Пример манифеста для включения модуля sds-replicated-volume:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: sds-replicated-volume
    spec:
      enabled: true

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули» откройте модуль sds-replicated-volume и включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация» или укажите настройки модуля в формате YAML на вкладке «YAML» без ключа верхнего уровня settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig sds-replicated-volume на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль sds-replicated-volume), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig sds-replicated-volume (подробнее о настройке Deckhouse Platform читайте в документации), выполнив следующую команду:

    d8 k edit mc sds-replicated-volume

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig sds-replicated-volume, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>

    Пример файла манифеста ModuleConfig sds-replicated-volume:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: sds-replicated-volume
    spec:
      version: 2
      enabled: true
      settings: # Параметры модуля из раздела «Параметры» ниже.

Как сменить канал обновлений модуля…

Чтобы сменить канал обновлений модуля, выполните действия из раздела Как сменить канал обновлений для модуля?.

Требования

К версии Kubernetes: 1.31 и выше.

К версии Deckhouse Platform: 1.72 и выше.

К версиям других модулей:

  • sds-node-configurator: 0.6.1 и выше.

Конверсии

Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия:

  • Обновление из версии 1 в 2:

    Нужно удалить параметр .enableThinProvisioning.

Параметры

Версия схемы: 2

  • settings
    объект
    • settings.backup
      объект
      Module 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/" ]