docs icon indicating copy to clipboard operation
docs copied to clipboard

Kubernetes. Сломана интеграция с Object Storage

Open pelid opened this issue 2 years ago • 2 comments

Пытался настроить geesefs так, чтобы подключить распознавание mime-types. В справке к geesefs нашёл подходящую опцию --use-content-type и указал её в yaml-манифесте StorageClass, как это предложено в туториале "Интеграция с Object Storage", но не сработало.

Делал так:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: csi-s3
provisioner: ru.yandex.s3.csi
parameters:
  mounter: geesefs
  options: "--use-content-type --memory-limit 1000 --dir-mode 0777 --file-mode 0666"
  …

Исследовал проблему и выяснил, что geesefs корректно реагирует на опцию --use-content-type, если запускать его напрямую на своей машине. Но в Kubernetes настройка parameters.options теряется.

Смог обойти проблему, добавив настройку options ещё и в PersistentVolume вместо StorageClass:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: bucket
spec:
  storageClassName: csi-s3
  capacity:
    storage: 6Gi
  accessModes:
    - ReadWriteMany
  csi:
    driver: ru.yandex.s3.csi
    volumeHandle: bucket
    volumeAttributes:
      capacity: 6Gi
      mounter: geesefs
      options: '--use-content-type --memory-limit 1000 --dir-mode 0777 --file-mode 0666'
    …

Сейчас туториал вводит в заблуждение. Пришлось потратить несколько часов, чтобы найти решение проблемы. Хорошо бы упомянуть о проблеме в документации.

PS. Не важно как настраивать интеграцию -- по туториалу или из Marketplace. В обоих случаях теряется настройка parameters.options в StorageClass.

pelid avatar Mar 11 '22 15:03 pelid

Привет. Проверил. У меня не воспроизводится - если storage class сразу создать с нужной опцией и после этого создавать динамические PVC, то опция нормально пробрасывается в geesefs. Если речь о статическом PVC, то там да - возможно, опция не будет попадать, пока её не пропишешь в PV. Так же будет, если PV создан до добавления опции в storageclass - это поведение кубера, опции копируются в PV, для их изменения нужно потом менять сам PV.

vitalif avatar Mar 14 '22 10:03 vitalif

Если речь о статическом PVC, то там да - возможно, опция не будет попадать, пока её не пропишешь в PV. Так же будет, если PV создан до добавления опции в storageclass - это поведение кубера, опции копируются в PV, для их изменения нужно потом менять сам PV.

Да, я столкнулся с проблемой на статическом PVC. Пробовал создавать PV уже после настройки нового storageclass -- не помогло.

pelid avatar Mar 16 '22 15:03 pelid