Доступно в редакциях:  EE

Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки

Модуль storage-volume-data-manager обеспечивает безопасные экспорт и импорт содержимого постоянных томов по протоколу HTTP. Он создает namespaced-ресурсы DataExport и DataImport в целевом неймспейсе, который ссылается на том для экспорта через поле targetRef. Модулем поддерживаются типы ресурсов PersistentVolumeClaim, VolumeSnapshot, VirtualDisk и VirtualDiskSnapshot.

Модуль построен на основе стандартного файлового сервера Go и поддерживает как файловый, так и блочный режимы работы с томами. Аутентификация пользователей осуществляется через Kubernetes RBAC с поддержкой частичного скачивания/загрузки контента с использованием HTTP Range заголовков.

Ключевые параметры

  • ttl — время жизни после последнего обращения к серверу (скачивание файла или просмотр директории). По истечении TTL экспортер-под автоматически удаляется, а PVC возвращается к исходному PV. В ресурсе DataExport условие Ready устанавливается в false с причиной Expired.

  • publish — при установке в true обеспечивает внешний доступ к экспортер-поду извне кластера. В поле PublicURL генерируется публичный URL в формате: https://data-exporter|importer.<public-domain>/<namespace>/<user-pvc-name>/.

Быстрый старт

Включение модуля

Чтобы включить модуль, воспользуйтесь следующей командой:

d8 k apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: storage-volume-data-manager
spec:
  enabled: true
  version: 1
EOF

Создание ресурсов DataExport и DataImport

Для создания и управления ресурсами используется утилита d8.

Экспорт:

d8 data export create -n <namespace> <имя_data_export> <тип_тома>/<имя_тома> --ttl 5m --publish

Импорт:

d8 data import create -n <namespace> <имя_data_import> -f <pvc-template.yaml> --ttl 60m --publish

Ресурсы PVC могут быть экспортированы только в том случае, если они не смонтированы какими-либо подами в данный момент.

Пример: создание ресурса DataExport для PVC с именем data в неймспейсе project с TTL 5 минут:

d8 data export create -n project my-export pvc/data --ttl 5m

Получение информации о ресурсе

Для просмотра деталей созданного ресурса DataExport выполните следующую команду:

d8 k -n project get de my-export

Скачивание данных

Для скачивания файлов из экспортированных томов используйте следующую команду:

d8 data export download -n <namespace> <имя_data_export> [/путь/к/файлу] -o <имя_файла>

Пример:

d8 data export download -n project my-export /test_file.txt -o test_file.txt --publish=true

Подробные примеры использования см. в USAGE. Для сценариев без утилиты d8 (YAML-манифесты, curl, HTTP API) см. FAQ.