PersistentVolume недействителен: spec: Требуемое значение: необходимо указать тип тома

Я пытаюсь создать постоянный том поверх / на основе существующего имени класса хранилища. Затем я хочу прикрепить к нему ПВХ; так что они связаны. Выполнение приведенного ниже кода даст мне "sftp-pv-Claim", который я хочу, но он не привязан к моему PV ("sftp-pv-storage"). Его статус "ожидает рассмотрения".

Я получаю следующее сообщение об ошибке: "PersistentVolume "sftp-pv-storage"недействителен: spec: Required value: must specify a volume type". Если кто-нибудь может указать мне в правильном направлении, почему я получаю сообщение об ошибке, я был бы очень признателен.

Технические характеристики:

Я создаю PV и PVC, используя диаграмму управления.

Я использую пользовательский интерфейс Rancher, чтобы узнать, привязаны ли они или нет, и создается ли PV.

Я использую хранилище Ceph с Rook (для обеспечения динамической подготовки PV).

Ошибка:

Я получаю следующее сообщение об ошибке: "PersistentVolume "sftp-pv-storage"недействителен: spec: Required value: must specify a volume type".

Попытки:

Я безрезультатно пытался использовать applyRef и matchLabels.

Я добавил "volumetype: none" к своим PV спецификациям.

Если я добавлю "hostPath: path: "/mnt/data"" в качестве спецификации к PV, он будет отображаться как Доступный PV (с путем локального узла), но мой PVC не привязан к нему. (Кроме того, в целях развертывания я не хочу использовать hostPath.

## Create Persistent Storage for SFTP
## Ref: https://www.cloudtechnologyexperts.com/kubernetes-persistent-volume-with-rook/

kind: PersistentVolume
apiVersion: v1
metadata:
  name: sftp-pv-storage
  labels:
    type: local
    name: sftp-pv-storage
spec:
  storageClassName: rook-ceph-block
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  allowVolumeExpansion: true
  volumetype: none

---
## Create Claim (links user to PV)
##  ==> If pod is created, need to automatically create PVC for user (without their input)

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: sftp-pv-claim
spec:
  storageClassName: sftp-pv-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

2 ответа

PersistentVolume "sftp-pv-storage" недействителен: spec: Requiredvalue: должен указывать тип тома.

В манифесте PV вы должны указать тип тома. Список всех поддерживаемых типов описан здесь. Как вы используетеCeph Я полагаю, вы будете использовать CephFS.

Том cephfs позволяет монтировать существующий том CephFS в ваш Pod. В отличие от emptyDir, который стирается при удалении Pod, содержимое тома cephfs сохраняется, а том просто размонтируется. Это означает, что том CephFS может быть предварительно заполнен данными, и эти данные могут быть "отключены" между модулями. CephFS может быть смонтирован несколькими авторами одновременно.

Пример CephFSвы можете найти в Github.

Если я добавлю "hostPath: path: "/mnt/data"" в качестве спецификации к PV, он будет отображаться как Доступный PV (с путем локального узла), но мой PVC не привязан к нему.

Если вы посмотрите официальную документацию Kubernetes оstorageClassName.

Утверждение может запросить конкретный класс, указав имя StorageClass с помощью атрибута storageClassName. Только PV запрошенного класса, имеющие то же имя storageClassName, что и PVC, могут быть привязаны к PVC.

storageClassName вашей PV а также PVC разные.

PV:

spec:
  storageClassName: rook-ceph-block

ПВХ:

spec:
  storageClassName: sftp-pv-storage

Надеюсь, это поможет.

Попробуйте эту спецификацию для заявки на постоянный том -

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: sftp-pv-claim
spec:
  storageClassName: sftp-pv-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  volumeName: sftp-pv-storage

Я только что добавил туда имя тома, думаю, это приведет к его привязке. Если это даже не сработает, попробуйте добавить соответствующий volumeMode в эту спецификацию.

You did not specify the "hostPath:" in your PersistentVolume Add it and the error should be resolved. See sample below

Другие вопросы по тегам