В основе Managed Kubernetes S3 CSI Driver используется GeeseFS, который позволяет монтировать S3-бакет как файловую систему. Можно самостоятельно настроить параметры GeeseFS, а также указать лог-группу, в которую будут записываться логи постоянных томов Object Storage. Для этого достаточно создать класс хранилищ. Параметры GeeseFS передаются в mountOptions.
Чтобы создать новый класс хранилищ, например, с указанием лог-группы, переопределением прав доступа для каталогов и отключением проверки контрольной суммы MD5 и SHA256:
-
Проверьте, что S3 CSI Driver установлен.
-
Создайте StorageClass, используя манифест cloudru-s3-log.yaml:
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:name: <name_of_storage_class>annotations:storageclass.kubernetes.io/is-default-class: "false"provisioner: s3.mk8s.csi.cloud.ruparameters:type: <storage_type>logGroupID: <log_group_id>unlimited: ""mountOptions:- dir-mode 0644- no-checksumvolumeBindingMode: WaitForFirstConsumerallowVolumeExpansion: 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 останутся по умолчанию.
-
-
Примените манифест:
kubectl apply -f cloudru-s3-log.yaml -
При создании Persistent Volume Claim в storageClassName укажите название нового класса хранилищ metadata.name.