如何解决k8spersistentvolume-controller没有与kubeadm匹配的卷插件

问题描述 投票:0回答:1

我已经使用kubeadm在裸机上配置了kubernetes集群。一切正常,我可以部署一个示例nginx应用。当我想使用volumeClaimTemplates部署状态集时出现问题,如下所示

  volumeClaimTemplates:
  - metadata:
      name: jackrabbit-volume
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 2Gi
      storageClassName: jackrabbit

和存储类

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    meta.helm.sh/release-name: chart-1591185140
    meta.helm.sh/release-namespace: gluu
    storageclass.beta.kubernetes.io/is-default-class: "false"
  labels:
    app.kubernetes.io/managed-by: Helm
    storage: jackrabbit
  managedFields:
  - apiVersion: storage.k8s.io/v1
mountOptions:
- debug
parameters:
  fsType: ext4
  pool: default
provisioner: kubernetes.io/no-provisioner
reclaimPolicy: Retain

我也尝试添加具有persistentVolume规格的hostPath,但仍然无法正常工作。

 ----     ------              ----               ----                         -------
  Warning  ProvisioningFailed  82s (x3 over 98s)  persistentvolume-controller  no volume plugin matched
kubernetes local-storage kubeadm
1个回答
0
投票

在StorageClass中,您正在使用kubernetes.io/no-provisioner,这意味着您正在尝试使用本地卷插件。

您的群集还不知道kubernetes.io/no-provisioner,这就是为什么显示no volume plugin matched的原因。

根据documentation,此插件不作为内部配置程序包含在kubernetes.io中。 Here您可以看到一个图表,其中列出了所有预配器,其插件名称(如果它们包含在内部预配器中)以及指向配置示例的链接。

在文档中,我们可以阅读:

您不限于指定“内部”供应商在此处列出(其名称以kubernetes.io开头并附带以及Kubernetes)。您还可以运行并指定外部供应商,它们是遵循specification由Kubernetes定义。外部供应商的作者已满他们的代码位于何处,供应者如何进行判断发货,需要如何运行,使用了什么体积的插件(包括Flex)等。存储库kubernetes-sigs/sig-storage-lib-external-provisioner设有一个库,用于编写实现规范的大部分。一些外部供应商在下面列出仓库kubernetes-incubator/external-storage

例如,NFS不提供内部预配器,但是可以使用外部预配器。在某些情况下,第三方存储供应商提供他们自己的外部供应商。

本地外部供应商已在this GitHub存储库中保留,您可以在Getting Started指南中找到如何使用它的指南。

© www.soinside.com 2019 - 2024. All rights reserved.