Evolution
Тема интерфейса

Создать класс хранилищ для постоянных томов Object Storage

В основе Managed Kubernetes S3 CSI Driver используется GeeseFS, который позволяет монтировать S3-бакет как файловую систему. Можно самостоятельно настроить параметры GeeseFS, а также указать лог-группу, в которую будут записываться логи постоянных томов Object Storage. Для этого достаточно создать класс хранилищ. Параметры GeeseFS передаются в mountOptions.

Чтобы создать новый класс хранилищ, например, с указанием лог-группы, переопределением прав доступа для каталогов и отключением проверки контрольной суммы MD5 и SHA256:

  1. Проверьте, что S3 CSI Driver установлен.

  2. Создайте StorageClass, используя манифест cloudru-s3-log.yaml:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
    name: <name_of_storage_class>
    annotations:
    storageclass.kubernetes.io/is-default-class: "false"
    provisioner: s3.mk8s.csi.cloud.ru
    parameters:
    type: <storage_type>
    logGroupID: <log_group_id>
    unlimited: ""
    mountOptions:
    - dir-mode 0644
    - no-checksum
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true

    Где:

    • metadata.name — название нового класса хранилищ.

    • metadata.annotations — аннотации для нового класса хранилищ.

      Чтобы при обновлении или удалении S3 CSI Driver созданный класс хранилищ не удалялся, укажите аннотацию mk8s.cloud.ru/addon-resource-policy: keep.

    • parameters.type — тип хранилища. Возможные значения:

      • s3-standard — стандартное хранилище;

      • s3-single — стандартное хранилище в одной зоне доступности;

      • s3-cold — холодное хранилище;

      • s3-ice — ледяное хранилище.

    • parameters.logGroupID — идентификатор лог-группы. Его можно посмотреть в сервисе клиентского логирования.

    • parameters.unlimited — создание хранилища без предельного объема.

      При создании PVC со StorageClass, где указан unlimited: "", будет создан том без ограничений по размеру. Не используйте параметр, если требуется ограничивать размер тома.

    • mountOptions.dir-mode — права доступа для каталогов. В примере право на чтение для всех, право на запись для владельца.

    • mountOptions.no-checksum — отключение проверки контрольной суммы MD5 и SHA256. Значение остальных опций mountOptions останутся по умолчанию.

  3. Примените манифест:

    kubectl apply -f cloudru-s3-log.yaml
  4. При создании Persistent Volume Claim в storageClassName укажите название нового класса хранилищ metadata.name.