Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
Утилита d8 — рекомендуемый способ экспорта и импорта данных томов. Все команды ниже используют неймспейс по умолчанию d8-storage-volume-data-manager и TTL по умолчанию 2m, если не указано иное.
Для сценариев без утилиты d8 (YAML-манифесты, curl, прямой HTTP API) см. FAQ.
Экспорт данных
Создание DataExport
d8 data export create [flags] <имя_data_export> <тип_тома>/<имя_тома>Поддерживаемые типы томов:
| Короткое | Полное имя | Kind в Kubernetes |
|---|---|---|
pvc |
persistentvolumeclaim |
PersistentVolumeClaim |
vs |
volumesnapshot |
VolumeSnapshot |
vd |
virtualdisk |
VirtualDisk |
vds |
virtualdisksnapshot |
VirtualDiskSnapshot |
Флаги:
-n, --namespace— целевой неймспейс (по умолчанию:d8-storage-volume-data-manager)--ttl— время жизни после последнего обращения (по умолчанию:2m)--publish— открыть доступ к экспортеру извне кластера (по умолчанию:false)
Пример: экспорт PVC с именем data в неймспейсе project:
d8 data export create -n project my-export pvc/data --ttl 5mПример: экспорт VolumeSnapshot:
d8 data export create -n project my-export vs/my-snapshot --ttl 10mРесурсы PVC могут быть экспортированы только в том случае, если они не смонтированы какими-либо подами в данный момент.
Просмотр содержимого экспорта
d8 data export list [flags] <имя_data_export> [/путь/]Псевдоним: ls.
Для файловых томов путь к директории должен заканчиваться на /. Для блочных томов путь не указывается.
Пример:
d8 data export list -n project my-export /mydir/Флаги: -n, --publish, --ttl (TTL для автоматически созданного DataExport), --cleanup.
Если первый аргумент — ссылка на том (например, pvc/data), а не имя существующего DataExport, команда автоматически создаёт временный DataExport.
Скачивание данных
d8 data export download [flags] [KIND/]<имя> [путь/файл.ext] -o <выходной_файл>Команда может ссылаться на существующий DataExport по имени или автоматически создать его, передав ссылку на том (например, pvc/data, vs/my-snapshot).
- Режим Filesystem: укажите путь к файлу или директории (например,
/mydir/file.txt). Если-oне указан, имя выходного файла берётся из исходного пути. - Режим Block: путь не указывается; скачивается raw-образ блочного устройства. Если
-oне указан, в качестве имени выходного файла используется имя DataExport.
Пример: скачивание файла из существующего DataExport:
d8 data export download -n project my-export /test_file.txt -o test_file.txtПример: автоматическое создание DataExport и скачивание из PVC:
d8 data export download -n project pvc/data /mydir/file.txt -o file.txt --ttl 5mПример: скачивание блочного тома из VolumeSnapshot:
d8 data export download -n project vs/my-snapshot -o data.imgФлаги: -n, -o, --publish, --ttl, --cleanup (удалить автоматически созданный DataExport без запроса при значении true).
Удаление DataExport
d8 data export delete [flags] <имя_data_export>Пример:
d8 data export delete -n project my-exportИмпорт данных
Создание DataImport
d8 data import create [flags] <имя_data_import> -f <pvc-template.yaml>Файл шаблона PVC описывает целевой том. Пример шаблона (pvc-template.yaml):
metadata:
name: imported-data
namespace: project
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: local-path
volumeMode: FilesystemПример:
d8 data import create my-import \
-n project \
-f ./pvc-template.yaml \
--ttl 60m --publish --wffc falseФлаги:
-n, --namespace— целевой неймспейс (по умолчанию:d8-storage-volume-data-manager; также может быть указан в metadata шаблона)-f, --file— путь к файлу шаблона PVC (обязательный)--ttl— время жизни (по умолчанию:2m)--publish— открыть доступ к импортеру извне кластера (по умолчанию:false)--wffc— ожидать первого потребителя (по умолчанию:false)
Загрузка данных
d8 data import upload [flags] <имя_data_import>Загрузка локального файла на endpoint DataImport. Команда автоматически определяет uid, gid и права доступа из исходного файла.
Пример:
d8 data import upload my-import \
-n project \
-f ./test-file \
-d /myfile \
-PФлаги:
-n, --namespace— целевой неймспейс-f, --file— путь к локальному файлу (обязательный)-d, --dstPath— путь назначения на томе (обязательный)-P, --publish— использовать публичный URL DataImport-c, --chunks— разбить загрузку на N частей (по умолчанию:10)--resume— возобновить прерванную загрузку с offset, сообщённого сервером
Возобновление прерванной загрузки:
d8 data import upload my-import -n project -f ./test-file -d /myfile -P --resumeЗагрузка частями:
d8 data import upload my-import -n project -f ./test-file -d /myfile -P -c 4Удаление DataImport
d8 data import delete [flags] <имя_data_import>Пример:
d8 data import delete my-import -n projectПолучение информации о ресурсе
Для просмотра созданного ресурса:
d8 k -n <namespace> get de <имя_data_export>
d8 k -n <namespace> get di <имя_data_import>В секции status содержатся URL доступа (url), CA-сертификат (ca), публичный URL (publicURL при включённом --publish) и условия готовности.