【问题标题】:Local PersistentVolumeClaim says "no volume plugin matched"本地 PersistentVolumeClaim 说“没有匹配的卷插件”
【发布时间】:2022-05-14 03:32:02
【问题描述】:

我最近开始探索 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

【问题讨论】:

    标签: kubernetes persistent-volumes persistent-volume-claims


    【解决方案1】:

    正如 MaggieO 所说,将 ReadWriteMany 更改为 ReadWriteOnce 是问题的一部分。另一部分是我必须在我的 C: 驱动器上手动创建 /mnt/disks/ssd1 文件夹,然后改写“路径:/c/mnt/disks/ssd1”。在我的示例中没有出现的东西,但无论如何我都在尝试做并且可能对其他人有帮助的是,我试图为一个 PV 拥有两个 PVC,这是不可能的。 PV 与 PVC 的关系是 1 比 1。

    【讨论】:

      【解决方案2】:

      您必须将 Persistent-volume 声明与您的持久卷绑定。 正如您提到的 pvc storageclassName:local-storage。 尝试使用 as storageclassName: kafka-pv 让你的 pvc 绑定到 pv。

      【讨论】:

      • 感谢您的回答。但是,如果您将 volumeName 添加到 PVC 中,它会破坏存储类和供应商的目的。关键是供应商将自动创建 PV 并为它们分配各自的 PVC。例如,如果您使用 azure 或 aws provisioner,则无需手动创建 PV。这里的 PV 是手动创建的,因为我们使用的是 no-provisioner。
      【解决方案3】:

      您的 Persistent Volume Claim 配置文件应如下所示:

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

      只需将 access modeReadWriteMany 更改为 ReadWriteOnce

      如果有帮助,请告诉我。

      【讨论】:

        【解决方案4】:

        在我的情况下,这是由 pv 存储引起的,只需增加 pv 存储的挂载大小即可。

        【讨论】:

          【解决方案5】:

          根据我们的经验(在名为 Openshift 3.11 的安全强化 Kubernetes 发行版下),当由于节点用完 PV 而无法创建 PVC 时,最常发生此配置错误。

          因此集群管理员需要添加一些 PV 和/或我们需要释放一些其他 PVC(未使用但仍绑定到 PV)。

          请求不正确的 PVC 容量是另一个可能的原因(当集群配置不当并且仅接受单个“幻数”作为容量时)。

          【讨论】:

            猜你喜欢
            • 2019-03-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-09-02
            • 1970-01-01
            • 2015-09-10
            • 2020-04-10
            • 1970-01-01
            相关资源
            最近更新 更多