Local PersistentVolumeClaim сообщает, что не найден плагин для тома

Недавно я начал изучать Kubernetes и решил попробовать развернуть kafka на k8s. Однако у меня возникла проблема с созданием постоянного тома. Я создаю класс хранилища и постоянный том, но заявки на постоянный том остаются в состоянии ожидания с сообщением «не найден подключаемый модуль тома». Это файлы yaml, которые я использовал с пунктирными линиями, обозначающими новый файл. Кто-нибудь знает, почему это происходит?

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate
reclaimPolicy: Retain

------------------------

apiVersion: v1
kind: PersistentVolume
metadata:
  name: kafka-pv
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  local:
    path: /mnt/disks/ssd1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - docker-desktop


---------------------------

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: zookeeper-pvc
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: local-storage

person Konstantin Konstantinov    schedule 02.04.2020    source источник


Ответы (4)


Вы должны связать требование постоянного тома с вашим постоянным томом. Как вы уже упоминали, pvc storageclassName: local-storage. попробуйте это с именем storageclassName: kafka-pv, чтобы ваш pvc был привязан к pv.

person VAK47    schedule 02.04.2020
comment
Спасибо за ваш ответ. Однако, если вы добавляете volumeName к PVC, это лишает возможности Storageclass и Provisioners. Дело в том, что провайдер автоматически создаст PV и назначит им соответствующие PVC. Например, если вы используете провайдер azure или aws, вам не придется создавать PV вручную. Здесь PV создаются вручную, потому что мы используем no-provisioner. - person Konstantin Konstantinov; 06.04.2020

Ваш файл конфигурации Persistent Volume Claim должен выглядеть следующим образом:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: zookeeper-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: local-storage

Просто измените режим доступа с ReadWriteMany на ReadWriteOnce.

Сообщите мне, помогло ли это.

person Malgorzata    schedule 02.04.2020

Как сказала МэггиО, изменение ReadWriteMany на ReadWriteOnce было частью проблемы. Другая часть заключалась в том, что мне пришлось создать папку / mnt / disks / ssd1 на моем диске C: вручную и вместо этого написать «path: / c / mnt / disks / ssd1». Что-то, чего нет в моем примере, но я все равно пытался сделать и может быть полезным для других, - это то, что я пытался иметь два PVC для одного PV, что невозможно. Отношение PV к PVC составляет 1: 1.

person Konstantin Konstantinov    schedule 06.04.2020

В моем случае это вызвано PV-хранилищем, просто увеличьте размер монтирования PV-хранилища.

person Kunlin Liao    schedule 29.04.2021