Стадия жизненного цикла модуля: 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