Csi-snapshot-controller#

Csi-snapshot-controller - контроллер для управления снимками томов в кластере DropApp Plus. Основное назначение – создание и удаление снимков томов, а также обеспечение их валидации.

Csi-snapshot-controller предоставляет следующие функциональности:

  1. Создание снимков томов в DropApp Plus.

  2. Удаление снимков томов.

  3. Проверка и валидация снимков для предотвращения создания недопустимых объектов.

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

Последовательность выполнения#

Рекомендуемые флаги приведены в таблице.

Таблица. Рекомендуемые флаги Csi-snapshot-controller.

Синтаксис флага

Значение

--leader-election

Включает выбор лидера. Полезно, когда запущено несколько реплик одного контроллера снимков в одном развертывании DropApp Plus. Только одна из них может быть активной (=leader). Новый лидер будет выбран, если текущий лидер выйдет из строя или станет нереагирующим в течение ~15 секунд

--leader-election-namespace <namespace>

Пространство имен, в котором находится ресурс выбора лидера. По умолчанию устанавливается pod, если не задано

--leader-election-lease-duration <duration>

Длительность, в секундах, в течение которой не-лидеры будут ждать, чтобы принудительно захватить лидерство. По умолчанию – 15 секунд

--leader-election-renew-deadline <duration>

Длительность, в секундах, в течение которой действующий лидер будет повторно обновлять свое лидерство перед отказом. По умолчанию – 10 секунд

--leader-election-retry-period <duration>

Длительность, в секундах, которую клиенты LeaderElector будут ждать между попытками действий. По умолчанию – 5 секунд

--kube-api-qps <num>

QPS для клиентов, которые общаются с API-сервером DropApp Plus. По умолчанию – 5.0

--kube-api-burst <num>

Прилив для клиентов, которые общаются с API-сервером DropApp Plus. По умолчанию – 10

--http-endpoint

Сетевой адрес TCP, на котором слушает HTTP-сервер для диагностики, включая метрики и проверку состояния выбора лидера. По умолчанию пустая строка, что означает отключение сервера

--metrics-path

HTTP-путь, по которому будут выставляться метрики Prometheus. По умолчанию /metrics

--worker-threads

Количество рабочих потоков. Значение по умолчанию - 10

--retry-interval-start

Начальный интервал повтора неудачного создания или удаления снимка тома. Удваивается с каждой неудачной попыткой, до максимального интервала повтора. Значение по умолчанию - 1 секунда

--retry-interval-max

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

--retry-crd-interval-max

Максимальная продолжительность повтора для обнаружения CRD снимков при запуске контроллера. Значение по умолчанию - 30 секунд

--prevent-volume-mode-conversion

Логическое значение, которое предотвращает изменение режима тома пользователем без разрешения при создании PVC из существующего VolumeSnapshot

--kubeconfig <path>

Путь к файлу конфигурации клиента DropApp Plus, который использует контроллер снимков для подключения к API-серверу DropApp Plus. Если не указано, будет использован токен по умолчанию, предоставленный DropApp Plus. Этот параметр полезен только тогда, когда контроллер снимков не запущен в виде pod DropApp Plus, например, для отладки

--resync-period <duration>

Внутренний интервал пересинхронизации, когда контроллер снимков переоценивает все существующие экземпляры VolumeSnapshot и пытается их выполнить, т.е. создать / удалить соответствующие снимки. Не влияет на повторные попытки неудачных вызовов! Должно использоваться только в случае ошибки в логике наблюдения DropApp Plus. По умолчанию – 15 минут

--version

Выводит текущую версию контроллера снимков и завершает работу

Выполните команды для идентификации недопустимых объектов снимков томов в системе DropApp Plus:

  1. Выполните, чтобы получить список объектов снимков томов, которые помечены как недопустимые ресурсы:

    oc get volumesnapshots --selector=snapshot.storage.kubernetes.io/invalid-snapshot-resource: ""
    

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

  2. Выполните команду, которая аналогична предыдущей, но возвращает список содержимого снимков томов, которые также помечены как недопустимые:

    oc get volumesnapshotcontents --selector=snapshot.storage.kubernetes.io/invalid-snapshot-content-resource: ""
    

После идентификации недопустимых объектов снимков томов, администраторы могут принять меры для их исправления или удаления.

Результат#

Csi-snapshot-controller настроен и готов к использованию.