nav-img
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>
    mountOptions:
    - dir-mode 0644
    - no-checksum
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true

Где:

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

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

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

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

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

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

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

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

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

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

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