Longhorn#

Longhorn - это распределенная, облачно-нативная система хранения (CSI). Она предоставляет легковесное, надежное и масштабируемое блочное хранилище на основе реплицированных постоянных томов, созданных из локального дискового пространства узлов кластера.

Важно

Для корректной работы на узлах, где будут работать pod Longhorn, должны быть установлены необходимые пакеты и включены службы:

sudo dnf install -y iscsi-initiator-utils nfs-utils device-mapper cryptsetup
sudo systemctl enable --now iscsid
sudo modprobe iscsi_tcp
sudo modprobe nfs

Эти пакеты есть в BaseOS репозитории Platform V Sberlinux.

Основные задачи и возможности
  • Создает и управляет постоянными томами (PersistentVolume - далее PV) с помощью локальных дисков, объединяя их в отказоустойчивую распределенную систему.

  • Поддерживает репликацию томов между узлами. При сбое одного узла данные остаются доступны благодаря автоматическому переключению.

  • Поддерживает гибкое управление томами:

    • создает снимки и резервные копии;

    • восстанавливает тома из резервного копирования;

    • клонирует тома;

    • масштабирует емкость.

  • Позволяет сохранять резервные копии во внешние хранилища: S3, NFS, MinIO и другие.

  • Предоставляет удобный UI для управления томами, узлами, резервным копированием и отслеживания состояния системы.

Примечание

Longhorn не является инструментом по умолчанию в Storage. Его можно установить как инструмент (Tool), или явно включить в список spec.tools при установке компонента Storage.

Конфигурация values#

Параметры Longhorn можно переопределить через редактирование нужных значений в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».

networkPolicies – параметры сетевой политики#

Параметр

Описание

Значение по умолчанию

networkPolicies.enabled

Включение NetworkPolicy для контроля доступа к pod Longhorn

false

networkPolicies.type

Дистрибутив, определяющий политику доступа для Ingress.
Возможные значения: k3s, rke2, rke1

"k3s"

image – параметры контейнерного образа#

Параметр

Описание

Значение по умолчанию

image.longhorn.engine.registry

Реестр образа Longhorn Engine

'{{ .Values.global.image.registry }}'

image.longhorn.engine.repository

Репозиторий образа Longhorn Engine

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-longhorn-engine/longhorn-engine'

image.longhorn.engine.tag

Тег образа Longhorn Engine

v1.12.0

image.longhorn.manager.registry

Реестр образа Longhorn Manager

'{{ .Values.global.image.registry }}'

image.longhorn.manager.repository

Репозиторий образа Longhorn Manager

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-longhorn-manager/longhorn-manager'

image.longhorn.manager.tag

Тег образа Longhorn Manager

v1.12.0

image.longhorn.ui.registry

Реестр образа Longhorn UI

'{{ .Values.global.image.registry }}'

image.longhorn.ui.repository

Репозиторий образа Longhorn UI

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-longhorn-ui/longhorn-ui'

image.longhorn.ui.tag

Тег образа Longhorn UI

v1.12.0

image.longhorn.instanceManager.registry

Реестр образа Longhorn Instance Manager

'{{ .Values.global.image.registry }}'

image.longhorn.instanceManager.repository

Репозиторий образа Longhorn Instance Manager

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-longhorn-instance-manager/longhorn-instance-manager'

image.longhorn.instanceManager.tag

Тег образа Longhorn Instance Manager

v1.12.0

image.longhorn.shareManager.registry

Реестр образа Longhorn Share Manager

'{{ .Values.global.image.registry }}'

image.longhorn.shareManager.repository

Репозиторий образа Longhorn Share Manager

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-longhorn-share-manager/longhorn-share-manager'

image.longhorn.shareManager.tag

Тег образа Longhorn Share Manager

v1.12.0

image.longhorn.backingImageManager.registry

Реестр образа Backing Image Manager

'{{ .Values.global.image.registry }}'

image.longhorn.backingImageManager.repository

Репозиторий образа Backing Image Manager

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-backing-image-manager/backing-image-manager'

image.longhorn.backingImageManager.tag

Тег образа Backing Image Manager

v1.12.0

image.longhorn.supportBundleKit.registry

Реестр образа Longhorn Support Bundle Kit

'{{ .Values.global.image.registry }}'

image.longhorn.supportBundleKit.repository

Репозиторий образа Longhorn Support Bundle Kit

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-support-bundle-kit/support-bundle-kit'

image.longhorn.supportBundleKit.tag

Тег образа Longhorn Support Bundle Kit

v0.0.90

image.csi.attacher.registry

Реестр образа CSI Attacher

'{{ .Values.global.image.registry }}'

image.csi.attacher.repository

Репозиторий образа CSI Attacher

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-csi-attacher/csi-attacher'

image.csi.attacher.tag

Тег образа CSI Attacher

v4.12.0

image.csi.provisioner.registry

Реестр образа CSI Provisioner

'{{ .Values.global.image.registry }}'

image.csi.provisioner.repository

Репозиторий образа CSI Provisioner

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-csi-external-provisioner/csi-provisioner'

image.csi.provisioner.tag

Тег образа CSI Provisioner

v6.1.1

image.csi.nodeDriverRegistrar.registry

Реестр образа CSI Node Driver Registrar

'{{ .Values.global.image.registry }}'

image.csi.nodeDriverRegistrar.repository

Репозиторий образа CSI Node Driver Registrar

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-csi-node-driver-registrar/csi-node-driver-registrar'

image.csi.nodeDriverRegistrar.tag

Тег образа CSI Node Driver Registrar

v2.17.0

image.csi.resizer.registry

Реестр образа CSI Resizer

'{{ .Values.global.image.registry }}'

image.csi.resizer.repository

Репозиторий образа CSI Resizer

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-csi-external-resizer/csi-resizer'

image.csi.resizer.tag

Тег образа CSI Resizer

v2.2.1

image.csi.snapshotter.registry

Реестр образа CSI Snapshotter

'{{ .Values.global.image.registry }}'

image.csi.snapshotter.repository

Репозиторий образа CSI Snapshotter

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-csi-snapshotter/csi-snapshotter'

image.csi.snapshotter.tag

Тег образа CSI Snapshotter

v8.6.0

image.csi.livenessProbe.registry

Реестр образа CSI Liveness Probe

'{{ .Values.global.image.registry }}'

image.csi.livenessProbe.repository

Репозиторий образа CSI Liveness Probe

'{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-csi-livenessprobe/livenessprobe'

image.csi.livenessProbe.tag

Тег образа CSI Liveness Probe

v2.19.0

image.openshift.oauthProxy.registry

Реестр образа OAuth Proxy. Укажите исходный образ. Применяется только для OpenShift

""

image.openshift.oauthProxy.repository

Репозиторий образа OAuth Proxy. Укажите исходный образ. Применяется только для OpenShift

""

image.openshift.oauthProxy.tag

Тег образа OAuth Proxy. Укажите версию OCP/OKD 4.1 или выше. Применяется только для OpenShift

""

image.pullPolicy

Политика загрузки образов для всех пользовательских компонентов Longhorn

IfNotPresent

service – настройки Service#

Параметр

Описание

Значение по умолчанию

service.ui.type

Тип Service

ClusterIP

service.ui.nodePort

Порт узла для Longhorn UI. При пустом значении будет выбран свободный порт в диапазоне 30000–32767

~

service.ui.loadBalancerClass

Класс реализации балансировщика нагрузки

""

service.ui.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам Service Longhorn UI.
Пример конфигурации:

annotation-key1: "annotation-value1"
annotation-key2: "annotation-value2"

{}

service.ui.labels

Метки, добавляемые ко всем создаваемым ресурсам Service Longhorn UI.
Пример конфигурации:

label-key1: "label-value1"
label-key2: "label-value2"

{}

service.manager.type

Тип Service

ClusterIP

service.manager.nodePort

Порт узла для Longhorn Manager. При пустом значении будет выбран свободный порт в диапазоне 30000–32767

""

persistence – параметры постоянного хранилища (PVC)#

Параметр

Описание

Значение по умолчанию

persistence.createStorageClass

Создание StorageClass по умолчанию для Longhorn. Установите false для пропуска создания StorageClass

true

persistence.defaultClass

Установка Longhorn StorageClass как класса хранения по умолчанию

true

persistence.defaultFsType

Тип файловой системы Longhorn StorageClass по умолчанию

ext4

persistence.defaultMkfsParams

Параметры mkfs для Longhorn StorageClass по умолчанию

""

persistence.defaultClassReplicaCount

Количество реплик Longhorn StorageClass по умолчанию

3

persistence.defaultDataLocality

Локальность данных для Longhorn StorageClass по умолчанию.
Возможные значения: disabled, best-effort

disabled

persistence.reclaimPolicy

Политика удаления Volume после освобождения запроса.
Возможные значения: Retain, Delete

Delete

persistence.volumeBindingMode

Режим привязки Volume и динамической подготовки.
Возможные значения: Immediate, WaitForFirstConsumer

"Immediate"

persistence.migratable

Включение горячей миграции Volume Longhorn с одного узла на другой

false

persistence.disableRevisionCounter

Отключение счетчика версий, предотвращающее отслеживание всех операций записи в Volume

"true"

persistence.nfsOptions

Параметры монтирования NFS для Longhorn StorageClass с Volume RWX

""

persistence.recurringJobSelector.enable

Включение селектора периодических заданий для Longhorn StorageClass

false

persistence.recurringJobSelector.jobList

Селектор периодических заданий для Longhorn StorageClass

[]

persistence.backingImage.enable

Включение базового образа в Longhorn StorageClass

true

persistence.backingImage.name

Базовый образ для создания и восстановления Volume в Longhorn StorageClass. При отсутствии базовых образов укажите тип источника данных и параметры для создания

~

persistence.backingImage.dataSourceType

Тип источника данных базового образа в Longhorn StorageClass. При существующем базовом образе Longhorn использует это значение для проверки, при отсутствии — создает из указанного источника

~

persistence.backingImage.dataSourceParameters

Параметры источника данных базового образа в Longhorn StorageClass.
Пример конфигурации:

'{"url":"https://backing-image-example.s3-region.amazonaws.com/test-backing-image"}'

~

persistence.backingImage.expectedChecksum

Ожидаемая контрольная сумма базового образа в Longhorn StorageClass

~

persistence.defaultDiskSelector.enable

Включение селектора дисков для Longhorn StorageClass по умолчанию

false

persistence.defaultDiskSelector.selector

Селектор дисков для Longhorn StorageClass по умолчанию. Longhorn использует только диски с указанными тегами

""

persistence.defaultNodeSelector.enable

Включение селектора узлов для Longhorn StorageClass по умолчанию

false

persistence.defaultNodeSelector.selector

Селектор узлов для Longhorn StorageClass по умолчанию. Longhorn использует только узлы с указанными тегами

""

persistence.shareManagerNodeSelector.enable

Включение share manager селектора узлов для Longhorn StorageClass по умолчанию

false

persistence.shareManagerNodeSelector.selector

Селектор узлов для pod share manager в Longhorn StorageClass по умолчанию

""

persistence.shareManagerTolerations.enable

Включениеtolerations для Longhorn StorageClass по умолчанию

false

persistence.shareManagerTolerations.tolerations

Tolerations для pod share manager в Longhorn StorageClass по умолчанию. Укажите значения через точку с запятой в синтаксисе kubectl taint.
Пример конфигурации:

key1=value1:effect; key2=value2:effect

""

persistence.unmapMarkSnapChainRemoved

Включение автоматического удаления снепшотов при очистке файловой системы.
Возможные значения: ignored, enabled, disabled

ignored

persistence.dataEngine

Версия движка хранения данных по умолчанию.
Возможные значения: v1, v2

v1

persistence.backupTargetName

Имя целевого хранилища резервных копий для Longhorn StorageClass по умолчанию

default

persistence.annotations

Аннотации для Longhorn StorageClass по умолчанию

{}

preUpgradeChecker – проверки перед обновлением#

Параметр

Описание

Значение по умолчанию

preUpgradeChecker.jobEnabled

Выполнение проверок перед обновлением Longhorn

true

preUpgradeChecker.upgradeVersionCheck

Проверка версии обновления после запуска pod Longhorn Manager DaemonSet

true

csi – параметры CSI-компонентов#

Параметр

Описание

Значение по умолчанию

csi.kubeletRootDir

Корневой каталог kubelet

~

csi.podAntiAffinityPreset

Настройка правил разграничения pod для предотвращения запуска нескольких экземпляров на одном узле

~

csi.attacherReplicaCount

Количество реплик CSI Attacher

~

csi.provisionerReplicaCount

Количество реплик CSI Provisioner

~

csi.resizerReplicaCount

Количество реплик CSI Resizer

~

csi.snapshotterReplicaCount

Количество реплик CSI Snapshotter

~

defaultSettings – настройки по умолчанию#

Параметр

Описание

Значение по умолчанию

defaultSettings.allowRecurringJobWhileVolumeDetached

Автоматическое подключение тома и создание снимка или резервной копии при запуске периодических заданий

~

defaultSettings.createDefaultDiskLabeledNodes

Автоматическое создание диска по умолчанию только на узлах с меткой node.longhorn.io/create-default-disk=true (если другие диски отсутствуют). При отключении Longhorn создает диск по умолчанию на каждом новом узле кластера

~

defaultSettings.defaultDataPath

Путь по умолчанию для хранения данных на хосте. Абсолютный путь к каталогу указывает на диск типа filesystem для V1 Data Engine, путь к блочному устройству — на диск типа block для V2 Data Engine

~

defaultSettings.defaultDataLocality

Data locality по умолчанию. Том Longhorn имеет data locality, если локальная реплика существует на том же узле, где работает pod с этим томом

~

defaultSettings.replicaSoftAntiAffinity

Планирование на узлах со здоровыми репликами того же тома. Отключено по умолчанию

~

defaultSettings.replicaAutoBalance

Автоматический rebalance реплик при обнаружении доступного узла

~

defaultSettings.storageOverProvisioningPercentage

Процент хранения, который можно выделить относительно емкости диска

~

defaultSettings.storageMinimalAvailablePercentage

Процент минимально доступной емкости диска. При превышении минимально доступной емкости над общей доступной — диск становится unschedulable

~

defaultSettings.storageReservedPercentageForDefaultDisk

Процент диска, который не выделяется для диска по умолчанию на каждом новом узле Longhorn

~

defaultSettings.upgradeChecker

Компонент проверки обновлений периодически проверяет наличие новых версий Longhorn. При наличии — уведомление в интерфейсе Longhorn

~

defaultSettings.upgradeResponderURL

Компонент опроса об обновлениях отправляет уведомление о доступности новой версии Longhorn для обновления

~

defaultSettings.managerUrl

Префикс URL, встроенный в ссылки ответов API Longhorn Manager (поля actions и links). Должен быть доступен внутри кластера без аутентификации. Формат: scheme://host[:port]

~

defaultSettings.defaultReplicaCount

Количество реплик по умолчанию для томов, созданных через Longhorn UI. Для конфигурации Kubernetes измените поле numberOfReplicas в StorageClass

~

defaultSettings.defaultLonghornStaticStorageClass

Имя статического Longhorn StorageClass по умолчанию. storageClassName назначается PV и PVC для существующего тома Longhorn

~

defaultSettings.failedBackupTTL

Количество минут хранения ресурса сбойной резервной копии. При значении 0 автоматическое удаление отключено

~

defaultSettings.backupExecutionTimeout

Количество минут, разрешенных для выполнения резервного копирования

~

defaultSettings.restoreVolumeRecurringJobs

Восстановление периодических заданий из тома резервной копии на цели резервного копирования и создание периодических заданий при их отсутствии во время восстановления

~

defaultSettings.recurringSuccessfulJobsHistoryLimit

Максимальное количество успешных периодических заданий резервного копирования и создания снимков для хранения. При значении 0 история не сохраняется

~

defaultSettings.recurringFailedJobsHistoryLimit

Максимальное количество периодических job резервного копирования и создания снимков для хранения, завершившихся с ошибкой. При значении 0 история не сохраняется

~

defaultSettings.recurringJobMaxRetention

Максимальное количество снимков или резервных копий для хранения

~

defaultSettings.supportBundleFailedHistoryLimit

Максимальное количество пакетов поддержки в кластере, завершившихся с ошибкой

~

defaultSettings.taintToleration

Taint или toleration для system-managed компонентов Longhorn. Укажите значения через точку с запятой в синтаксисе kubectl taint

~

defaultSettings.systemManagedComponentsNodeSelector

Селектор узлов для управляемых системой компонентов Longhorn

~

defaultSettings.systemManagedCSIComponentsResourceLimits

Лимиты ресурсов для управляемых системой CSI-компонентов

~

defaultSettings.priorityClass

PriorityClass для управляемых системой компонентов Longhorn. Помогает предотвратить вытеснение при давлении на узел

"longhorn-critical"

defaultSettings.autoSalvage

Автоматическое восстановление томов при неисправности всех реплик. Включено по умолчанию

~

defaultSettings.autoDeletePodWhenVolumeDetachedUnexpectedly

Автоматическое удаление рабочего pod под управлением контроллера (например, DaemonSet) при неожиданном отключении тома Longhorn

~

defaultSettings.blacklistForAutoDeletePodWhenVolumeDetachedUnexpectedly

Черный список контроллеров api/kind для автоматического удаления pod при неожиданном отключении тома. Разделяйте записи точкой с запятой.
Пример конфигурации:

apps/StatefulSet;apps/DaemonSet

~

defaultSettings.disableSchedulingOnCordonedNode

Предотвращение планирования реплик Longhorn на заблокированном узле Kubernetes. Включено по умолчанию

~

defaultSettings.replicaZoneSoftAntiAffinity

Планирование новых реплик тома на узлах в той же зоне, где существуют исправные реплики. Longhorn использует метку topology.kubernetes.io/zone в объекте узла

~

defaultSettings.replicaDiskSoftAntiAffinity

Планирование на дисках с исправными репликами того же тома

~

defaultSettings.nodeDownPodDeletionPolicy

Политика действий Longhorn при застревании тома с pod StatefulSet или Deployment на узле со сбоем

~

defaultSettings.nodeDrainPolicy

Политика действий Longhorn при дренировании узла с последней исправной репликой тома

~

defaultSettings.detachManuallyAttachedVolumesWhenCordoned

Автоматическое отключение вручную подключенных томов при блокировке узла

~

defaultSettings.replicaReplenishmentWaitInterval

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

~

defaultSettings.concurrentReplicaRebuildPerNodeLimit

Максимальное количество одновременно собираемых реплик на каждом узле

~

defaultSettings.rebuildConcurrentSyncLimit

Максимальное количество операций синхронизации файлов, выполняемых одновременно во время повторной сборки одной реплики. Применяется только к V1 Data Engine

~

defaultSettings.concurrentVolumeBackupRestorePerNodeLimit

Максимальное количество томов, восстанавливаемых одновременно из резервной копии на каждом узле. При значении 0 восстановление из резервной копии отключено

~

defaultSettings.disableRevisionCounter

Отключение счетчика версий, предотвращающее отслеживание всех операций записи в том. Применяется только к томам, созданным через интерфейс Longhorn

'{"v1":"true"}'

defaultSettings.systemManagedPodsImagePullPolicy

Политика загрузки образов для управляемых системой pod (Instance Manager, образов движка, драйвера CSI). Применяется после перезапуска

~

defaultSettings.allowVolumeCreationWithDegradedAvailability

Создание и подключение тома без планирования всех реплик в момент создания

~

defaultSettings.autoCleanupSystemGeneratedSnapshot

Автоматическое удаление системного снимка после завершения повторной сборки реплики

~

defaultSettings.autoCleanupRecurringJobBackupSnapshot

Автоматическое удаление снимка, созданного периодическим заданием резервного копирования

~

defaultSettings.concurrentAutomaticEngineUpgradePerNodeLimit

Максимальное количество движков, обновляемых одновременно на каждом узле после обновления Longhorn Manager. При значении 0 автоматическое обновление движка тома отключено

~

defaultSettings.backingImageCleanupWaitInterval

Количество минут ожидания перед удалением файла базового образа, когда ни одна реплика на диске его не использует

~

defaultSettings.backingImageRecoveryWaitInterval

Количество секунд ожидания перед повторной загрузкой файла базового образа при статусе failed или unknown

~

defaultSettings.guaranteedInstanceManagerCPU

Процент доступных ядер CPU на каждом узле, резервируемый для каждого pod диспетчера экземпляров

~

defaultSettings.kubernetesClusterAutoscalerEnabled

Уведомление Longhorn об использовании автомасштабирования кластера

~

defaultSettings.orphanResourceAutoDeletion

Автоматическое удаление изолированных ресурсов и связанных данных (например, устаревших реплик). Укажите типы ресурсов через точку с запятой.
Пример конфигурации:

replica-data;instance

~

defaultSettings.orphanResourceAutoDeletionGracePeriod

Время ожидания в секундах перед автоматическим удалением изолированного пользовательского ресурса и связанных ресурсов

~

defaultSettings.storageNetwork

Сеть хранилища для внутрикластерного трафика. При пустом значении используется сеть кластера Kubernetes

~

defaultSettings.endpointNetworkForRWXVolume

Выделенная сеть для монтирования томов с доступом RWX (ReadWriteMany). Оставьте пустым для использования сети кластера Kubernetes

~

defaultSettings.deletingConfirmationFlag

Флаг предотвращения случайного удаления Longhorn

~

defaultSettings.engineReplicaTimeout

Время ожидания между Longhorn Engine и репликами

~

defaultSettings.snapshotDataIntegrity

Включение и отключение хеширования снимков и проверок целостности данных

~

defaultSettings.snapshotDataIntegrityImmediateCheckAfterSnapshotCreation

Отключение хеширования снимков после создания снимка для минимизации влияния на производительность

~

defaultSettings.snapshotDataIntegrityCronjob

Время проверки целостности данных в файлах дисков снимков. Используйте формат cron-выражения Unix

~

defaultSettings.snapshotHeavyTaskConcurrentLimit

Контроль количества ресурсоемких операций со снимками (очистка, клонирование), выполняемых одновременно на узле. Механизм наилучших усилий

~

defaultSettings.removeSnapshotsDuringFilesystemTrim

Автоматическая пометка последнего снимка и родительских файлов как удаленных при обрезке файловой системы. Longhorn не удаляет снимок с несколькими дочерними файлами

~

defaultSettings.fastReplicaRebuildEnabled

Быстрая повторная сборка реплик на основе контрольной суммы файлов дисков снимков. Перед включением установите snapshotDataIntegrity в enable или fast-check

~

defaultSettings.replicaFileSyncHttpClientTimeout

Количество секунд ожидания HTTP-клиентом ответа от сервера синхронизации файлов

~

defaultSettings.longGRPCTimeOut

Время ожидания в секундах для завершения повторной сборки реплики и операций клонирования снимков

~

defaultSettings.logLevel

Уровни логирования в Longhorn Manager.
Возможные значения: Panic, Fatal, Error, Warn, Info, Debug, Trace

~

defaultSettings.logPath

Каталог на хосте для файлов журналов pod диспетчера экземпляров. Применяется только к pod диспетчера экземпляров в V2 Data Engine

~

defaultSettings.backupCompressionMethod

Метод сжатия резервной копии

~

defaultSettings.backupConcurrentLimit

Максимальное количество рабочих потоков для каждой резервной копии одновременно

~

defaultSettings.defaultBackupBlockSize

Размер блока резервной копии по умолчанию в MiB при создании нового тома.
Возможные значения: 2 или 16

~

defaultSettings.restoreConcurrentLimit

Максимальное количество рабочих потоков для каждой операции восстановления одновременно

~

defaultSettings.v1DataEngine

Включение V1 Data Engine

~

defaultSettings.v2DataEngine

Включение экспериментального V2 Data Engine на базе SPDK. Не используйте в рабочей среде

~

defaultSettings.dataEngineHugepageEnabled

Включение больших страниц для демона SPDK target в V2 Data Engine. При отключении используется устаревшая память

~

defaultSettings.dataEngineMemorySize

Размер большой страницы в MiB для демона SPDK target в V2 Data Engine

~

defaultSettings.dataEngineCPUMask

Ядра CPU для демона SPDK target в V2 Data Engine. Принимает шестнадцатеричные маски (например, 0x3, 0xff) или список CPU (например, 0-1,2,5). Рекомендуется минимум 2 ядра CPU

~

defaultSettings.replicaRebuildingBandwidthLimit

Лимит полосы пропускания при записи (МБ/с) для повторной сборки реплик в V2 Data Engine (SPDK). При значении 0 лимит отключен

~

defaultSettings.defaultUblkQueueDepth

Глубина очереди по умолчанию для фронтенда Ublk в V2 Data Engine

~

defaultSettings.defaultUblkNumberOfQueue

Количество очередей по умолчанию для фронтенда Ublk в V2 Data Engine

~

defaultSettings.engineImagePodLivenessProbePeriod

Интервал между проверками работоспособности pod образа движка в секундах

~

defaultSettings.engineImagePodLivenessProbeTimeout

Время ожидания проверки работоспособности pod образа движка в секундах

~

defaultSettings.engineImagePodLivenessProbeFailureThreshold

Количество последовательных сбоев проверки работоспособности перед перезапуском pod образа движка

~

defaultSettings.instanceManagerPodLivenessProbeTimeout

Время ожидания проверки работоспособности pod диспетчера экземпляров в секундах

~

defaultSettings.allowEmptyNodeSelectorVolume

Планирование томов с пустым селектором узлов на любом узле

~

defaultSettings.allowEmptyDiskSelectorVolume

Планирование томов с пустым селектором дисков на любом диске

~

defaultSettings.allowCollectingLonghornUsageMetrics

Периодический сбор анонимных метрик использования Longhorn для улучшения продукта

~

defaultSettings.disableSnapshotPurge

Временное предотвращение всех попыток очистки снимков томов

~

defaultSettings.snapshotMaxCount

Максимальное количество снимков для тома. Значение от 2 до 250

~

defaultSettings.snapshotCountWarningThreshold

Порог предупреждения для условия TooManySnapshots (слишком много снимков) тома. Значение от 2 до 250

~

defaultSettings.dataEngineLogLevel

Уровень логирования демона SPDK target в V2 Data Engine. Поддерживаемые значения: Error, Warning, Notice, Info, Debug

~

defaultSettings.dataEngineLogFlags

Флаги журнала для демона SPDK target в V2 Data Engine

~

defaultSettings.freezeFilesystemForSnapshot

Заморозка файловой системы на корневом разделе перед созданием снимка

~

defaultSettings.autoCleanupSnapshotWhenDeleteBackup

Автоматическое удаление снимка при удалении резервной копии

~

defaultSettings.autoCleanupSnapshotAfterOnDemandBackupCompleted

Автоматическое удаление снимка после завершения резервного копирования по требованию

~

defaultSettings.rwxVolumeFastFailover

Обнаружение сбоя узла и немедленная миграция затронутых томов RWX

~

defaultSettings.offlineReplicaRebuilding

Автоматическая повторная сборка деградированных реплик при отключенном томе. Применяется, если настройка тома установлена в ignored или enabled

~

defaultSettings.nodeDiskHealthMonitoring

Мониторинг и запись информации о состоянии дисков узлов Longhorn. При отключении проверки состояния дисков и обновление статуса пропускаются

~

defaultSettings.csiAllowedTopologyKeys

Список топологических ключей, разрешенных для передачи драйверу CSI Longhorn. При пустом значении топологические ключи не передаются, PV не имеют nodeAffinity

~

defaultSettings.csiStorageCapacityTracking

Контроль емкости хранилища CSI, позволяющий планировщику kube-scheduler фильтровать узлы, не вмещающие запрашиваемый том

~

defaultSettings.kubernetesMetricsServerMetricsEnabled

Запрос к серверу метрик Kubernetes (metrics.k8s.io) для получения использования ресурсов pod и узлов

~

defaultBackupStore – параметры backupstore по умолчанию#

Параметр

Описание

Значение по умолчанию

defaultBackupStore.backupTarget

Конечная точка хранилища резервных копий по умолчанию.
Возможные значения: NFS, CIFS, AWS, GCP, AZURE

~

defaultBackupStore.backupTargetCredentialSecret

Имя Secret с учетными данными для конечной точки резервного копирования

~

defaultBackupStore.pollInterval

Количество секунд ожидания перед проверкой хранилища резервных копий по умолчанию на наличие новых резервных копий

~

privateRegistry – параметры приватного реестра образов#

Параметр

Описание

Значение по умолчанию

privateRegistry.createSecret

Автоматическое создание нового Secret для приватного реестра

~

privateRegistry.registryUrl

URL-адрес приватного реестра. При пустом значении используется системный реестр по умолчанию

~

privateRegistry.registryUser

Пользователь для аутентификации в приватном реестре

~

privateRegistry.registryPasswd

Пароль для аутентификации в приватном реестре

~

privateRegistry.registrySecret

Имя Secret для извлечения образов из приватного реестра. Если createSecret: true, создается новый Secret с этим именем; если false, используется существующий

~

longhornManager – параметры Longhorn Manager#

Параметр

Описание

Значение по умолчанию

longhornManager.log.format

Формат логов Longhorn Manager.
Возможные значения: plain, json

plain

longhornManager.distro

Опциональный идентификатор дистрибутива для отчетов Upgrade Responder

"longhorn"

longhornManager.priorityClass

PriorityClass для Longhorn Manager

"longhorn-critical"

longhornManager.tolerations

Toleration для размещения pod на узлах с ограничениями (taints). Для Longhorn Manager.
Пример конфигурации:

- key: "key"
  operator: "Equal"
  value: "value"
  effect: "NoSchedule"

[]

longhornManager.resources

Запросы и ограничения ресурсов для контейнера Longhorn Manager

~

longhornManager.nodeSelector

Селектор узлов для планирования pod Longhorn Manager.
Пример конфигурации:

label-key1: "label-value1"
label-key2: "label-value2"

{}

longhornManager.serviceAnnotations

Аннотации, добавляемые ко всем создаваемым ресурсам. Для Service Longhorn Manager.
Пример конфигурации:

annotation-key1: "annotation-value1"
annotation-key2: "annotation-value2"

{}

longhornManager.serviceLabels

Метки, добавляемые ко всем создаваемым ресурсам. Для Service Longhorn Manager.
Пример конфигурации:

label-key1: "label-value1"
label-key2: "label-value2"

{}

longhornManager.updateStrategy.rollingUpdate.maxUnavailable

Стратегия обновления DaemonSet Longhorn Manager

"100%"

longhornDriver – параметры Longhorn Driver Deployer#

Параметр

Описание

Значение по умолчанию

longhornDriver.log.format

Формат логов Longhorn Driver.
Возможные значения: plain, json

plain

longhornDriver.priorityClass

PriorityClass для Longhorn Driver

"longhorn-critical"

longhornDriver.tolerations

Toleration для размещения pod на узлах с ограничениями (taints). Для Longhorn Driver.
Пример конфигурации:

- key: "key"
  operator: "Equal"
  value: "value"
  effect: "NoSchedule"

[]

longhornDriver.nodeSelector

Селектор узлов для планирования pod Longhorn Driver.
Пример конфигурации:

label-key1: "label-value1"
label-key2: "label-value2"

{}

longhornUI – параметры Longhorn UI#

Параметр

Описание

Значение по умолчанию

longhornUI.replicas

Количество реплик pod Longhorn UI

2

longhornUI.priorityClass

PriorityClass для Longhorn UI

"longhorn-critical"

longhornUI.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

podAntiAffinity:
  preferredDuringSchedulingIgnoredDuringExecution:
    - weight: 1
      podAffinityTerm:
        labelSelector:
          matchExpressions:
            - key: app
              operator: In
              values:
                - longhorn-ui
        topologyKey: kubernetes.io/hostname

longhornUI.tolerations

Toleration для размещения pod на узлах с ограничениями (taints). Для Longhorn UI.
Пример конфигурации:

- key: "key"
  operator: "Equal"
  value: "value"
  effect: "NoSchedule"

[]

longhornUI.nodeSelector

Селектор узлов для планирования pod. Для Longhorn UI.
Пример конфигурации:

label-key1: "label-value1"
label-key2: "label-value2"

{}

ingress – настройки Ingress для маршрутизации внешнего трафика#

Параметр

Описание

Значение по умолчанию

ingress.enabled

Включение Ingress для компонента сервера Longhorn UI

true

ingress.ingressClassName

Имя класса контроллера Ingress

nginx

ingress.host

Имя хоста балансировщика нагрузки L7

'longhorn.{{ include "ingress.domain" . }}'

ingress.extraHosts

Дополнительные имена хостов для TLS (дополнительные имена субъектов). Используйте при необходимости нескольких FQDN для одного ingress.
Пример конфигурации:

- longhorn.example.com
- longhorn-ui.internal.local

[]

ingress.tls

Включение TLS для Ingress

true

ingress.secureBackends

Включение защищенного подключения к Service Longhorn UI через порт 443

false

ingress.tlsSecret

TLS Secret с закрытым ключом и сертификатом. Применяется только при включенном TLS

ingress-tls

ingress.path

Путь Ingress по умолчанию. Доступ к Longhorn UI по полному пути {{host}}+{{path}}

/

ingress.pathType

Тип соответствия пути Ingress

ImplementationSpecific

ingress.annotations

Аннотации Ingress.
Пример конфигурации:

kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: true

{}

ingress.secrets

Secret с TLS приватным ключом и сертификатом. Используйте для собственных сертификатов Ingress.
Пример конфигурации:

- name: longhorn.local-tls
  key:
  certificate:

~

httproute – параметры HTTPRoute для Longhorn UI#

Параметр

Описание

Значение по умолчанию

httproute.enabled

Создание HTTPRoute для Service Longhorn UI через Gateway API

false

httproute.parentRefs

Ссылки на родительские ресурсы Gateway для HTTPRoute.
Пример конфигурации:

- name: gateway-name
  namespace: gateway-namespace

[]

httproute.hostnames

Список hostname для HTTPRoute.
Пример конфигурации:

- longhorn.example.com
- longhorn.example.org

[]

httproute.path

Default path для HTTPRoute

/

httproute.pathType

Path match type для HTTPRoute.
Возможные значения: Exact, PathPrefix

PathPrefix

httproute.annotations

Аннотации для HTTPRoute.
Пример конфигурации:

annotation-key1: "annotation-value1"

{}

enablePSP – включение политики безопасности pod#

Параметр

Описание

Значение по умолчанию

enablePSP

Включение PodSecurityPolicy для запуска privileged pod Longhorn. Применяется только к кластерам Kubernetes 1.25 и ниже с включенным контроллером Pod Security admission

false

namespaceOverride – переопределение пространства имен#

Параметр

Описание

Значение по умолчанию

namespaceOverride

Переопределение пространства имен вместо значения по умолчанию

""

annotations – аннотации, добавляемые ко всем создаваемым ресурсам#

Параметр

Описание

Значение по умолчанию

annotations

Аннотации, добавляемые ко всем создаваемым ресурсам. Аннотации для pod Longhorn Manager DaemonSet. Опционально

{}

serviceAccount – настройки сервисного аккаунта#

Параметр

Описание

Значение по умолчанию

serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам. Для ServiceAccount Longhorn

{}

metrics – параметры метрик Longhorn#

Параметр

Описание

Значение по умолчанию

metrics.serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator. Для компонентов Longhorn Manager

true

metrics.serviceMonitor.additionalLabels

Дополнительные метки для ресурса Prometheus ServiceMonitor

{}

metrics.serviceMonitor.annotations

Аннотации для ресурса Prometheus ServiceMonitor

{}

metrics.serviceMonitor.interval

Интервал сбора целевых метрик Prometheus

""

metrics.serviceMonitor.scrapeTimeout

Тайм-аут сбора метрик

""

metrics.serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик. Для target metadata labels

[]

metrics.serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам. Для samples перед ingestion

[]

metrics.serviceMonitor.sampleLimit

Лимит samples на scrape. Значение 0 (по умолчанию) опускает sampleLimit

0

openshift – параметры интеграции Longhorn с OpenShift#

Параметр

Описание

Значение по умолчанию

openshift.enabled

Интеграция Longhorn с OpenShift

false

openshift.ui.route

Маршрут для соединений между Longhorn и веб-консоли OpenShift

"longhorn-ui"

openshift.ui.port

Порт доступа к веб-консоли OpenShift

443

openshift.ui.proxy

Порт прокси для доступа к веб-консоли OpenShift

8443

enableGoCoverDir – генерация code coverage profiles#

Параметр

Описание

Значение по умолчанию

enableGoCoverDir

Генерация Go code coverage profiles для Longhorn

false

extraObjects – добавление дополнительных динамических объектов в Helm-чарте#

Параметр

Описание

Значение по умолчанию

extraObjects

Добавление дополнительных динамических объектов в Helm-чарте. Список объектов

[]

Параметр

Описание

Значение по умолчанию

consoleLink.enabled

Включение создания ресурса ConsoleLink для перехода в Open WebUI из консоли платформы. Для отображения Longhorn в DropApp Console

true