Стадия жизненного цикла модуля: General Availability
Доступно в редакциях: EE
Модуль storage-volume-data-manager обеспечивает безопасный экспорт содержимого постоянных томов по протоколу HTTP. Он создает namespaced-ресурс DataExport в целевом неймспейсе, который ссылается на том для экспорта через поле targetRef. Модулем поддерживаются типы ресурсов PersistentVolumeClaim и VolumeSnapshot.
Модуль построен на основе стандартного файлового сервера Go и поддерживает как файловый, так и блочный режимы экспорта томов. Аутентификация пользователей осуществляется через Kubernetes RBAC с поддержкой частичного скачивания контента с использованием HTTP Range заголовков.
Ключевые параметры
-
ttl— время жизни после последнего обращения к серверу (скачивание файла или просмотр директории). По истечении TTL экспортер-под автоматически удаляется, а PVC возвращается к исходному PV. В ресурсеDataExportусловиеReadyустанавливается вfalseс причинойExpired. -
publish— при установке вtrueобеспечивает внешний доступ к экспортер-поду извне кластера. В полеPublicURLгенерируется публичный URL в формате:https://data-exporter.<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
Для создания и управления ресурсами DataExport используется утилита d8 со следующим синтаксисом:
d8 data -n <namespace> create <DataExport resource name> <тип ресурса для экспорта>/<имя ресурса для экспорта> --ttl 5m --publish (true/false)
Ресурсы PVC могут быть экспортированы только в том случае, если они не смонтированы какими-либо подами в данный момент.
Пример: создание ресурса DataExport для PVC с именем data в неймспейсе project с TTL 5 минут:
d8 data -n project create my-export pvc/data --ttl 5m
Получение информации о ресурсе
Для просмотра деталей созданного ресурса DataExport выполните следующую команду:
d8 k -n project get de my-export
Скачивание данных
Для скачивания файлов из экспортированных томов используйте следующую команду:
d8 data -n <namespace> download <тип ресурса (pvc/vs/dataexport)>/<имя ресурса>/<путь к файлу> -o <имя файла>
Пример:
d8 data -n project download dataexport/my-export -o test_file.txt --publish true