Что такое модуль state-snapshotter?

Модуль state-snapshotter — это критически важный инфраструктурный компонент в Deckhouse, который предоставляет возможности захвата и восстановления состояния ресурсов Kubernetes. Он позволяет создавать снимки состояния конкретных объектов Kubernetes на определенный момент времени и восстанавливать их позже.

Что он делает?

Модуль предоставляет:

  1. Захват состояния: Захватывает текущее состояние конкретных ресурсов Kubernetes (CRD, ConfigMap, Secret и т.д.) в неизменяемые чекпоинты
  2. Хранение состояния: Сохраняет захваченное состояние в распределенном формате с разбиением на чанки, оптимизированном для больших наборов данных
  3. Восстановление состояния: Получает и восстанавливает захваченное состояние через нативный API Kubernetes
  4. Автоматическое управление жизненным циклом: Автоматически управляет хранением и очисткой чекпоинтов с использованием TTL-ретейнеров

Зачем он нужен?

Модуль state-snapshotter необходим для:

  • Операций резервного копирования и восстановления: Создание резервных копий состояния приложения перед важными операциями (обновления, миграции и т.д.)
  • Аварийного восстановления: Поддержание снимков состояния на определенный момент времени для сценариев аварийного восстановления
  • Миграции состояния: Захват состояния из одного кластера и восстановление его в другом
  • Аудита и соответствия: Поддержание исторических записей состояний ресурсов для целей аудита
  • Интеграции с другими модулями: Используется другими модулями Deckhouse (например, virtualization, backup) для захвата и восстановления состояния приложений

Почему его НЕ нужно отключать

⚠️ Важно: Модуль state-snapshotter НЕ должен отключаться, потому что:

  1. Критическая инфраструктура: Это базовый компонент, используемый другими модулями Deckhouse для управления состоянием
  2. Нет влияния на производительность: Модуль активируется только при явном запросе через ресурсы ManifestCaptureRequest — он не запускает фоновые процессы
  3. Эффективное использование ресурсов: Использует минимальные ресурсы и обрабатывает только явные запросы на захват
  4. Необходим для операций: Многие операции Deckhouse (резервное копирование, снимки) зависят от этого модуля
  5. Автоматическая очистка: Автоматически управляет своими ресурсами и очищает старые чекпоинты на основе TTL