首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决k8s持久卷控制器没有与kubeadm匹配的卷插件

如何解决k8s持久卷控制器没有与kubeadm匹配的卷插件
EN

Stack Overflow用户
提问于 2020-06-03 16:42:23
回答 2查看 2.7K关注 0票数 1

我使用kubeadm在裸金属上配置了一个kubernetes集群。一切都很好,我可以部署一个示例nginx应用程序。当我想使用volumeClaimTemplates部署状态集时出现了问题,如下所示

代码语言:javascript
运行
复制
  volumeClaimTemplates:
  - metadata:
      name: jackrabbit-volume
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 2Gi
      storageClassName: jackrabbit

和储藏室

代码语言:javascript
运行
复制
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,但仍然无法工作。

代码语言:javascript
运行
复制
 ----     ------              ----               ----                         -------
  Warning  ProvisioningFailed  82s (x3 over 98s)  persistentvolume-controller  no volume plugin matched
EN

回答 2

Stack Overflow用户

发布于 2020-06-04 08:31:50

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

集群还不知道kubernetes.io/no-provisioner,这就是no volume plugin matched出现的原因。

根据文档的说法,这个插件不包括在kubernetes.io中作为内部提供器。这里您可以看到一个图表,其中列出了所有提供程序、它们的插件名(如果它们包含在内部提供程序中)和一个指向配置示例的链接。

在文件中,我们可以读到:

您不限于指定此处列出的“内部”提供程序(其名称以kubernetes.io为前缀,并与Kubernetes一起发送)。您还可以运行和指定外部提供程序,它们是遵循Kubernetes定义的规格说明的独立程序。外部提供程序的作者对其代码所在位置、提供程序是如何提供的、它需要如何运行、它使用了什么卷插件(包括Flex)等都有完全的酌处权。存储库kubernetes-sigs/sig-storage-lib-external-provisioner包含一个用于编写实现大部分规范的外部提供程序的库。存储库kubernetes-孵化器/外部存储中列出了一些外部提供程序。 例如,NFS不提供内部提供程序,但可以使用外部提供程序。也有第三方存储供应商提供自己的外部供应程序的情况。

本地外部提供程序位于 GitHub存储库中,在那里您可以找到指导您如何使用它的快速入门指南。

票数 2
EN

Stack Overflow用户

发布于 2020-11-09 00:25:35

当PV分配到PVC no volume plugin matched时,通常会出现来自持久化卷控制器的错误(当描述PVC时)。

要验证这一点,请在豆荚/状态集上运行kubectl describe --如果您看到以下错误:

代码语言:javascript
运行
复制
... pod has unbound immediate PersistentVolumeClaims

这可能是由于使用本地卷时的多种原因造成的--以下几个例子:

1) PVC请求存储量过大,并且没有PV能够满足此值( PV存储值需要等于或高于PVC存储请求)。

2)并非所有PVC作为相应的PV -在这种情况下,我们可以看到,一些资源将是成功的,有些将被困住:

代码语言:javascript
运行
复制
$ kubectl get pods
NAME      READY   STATUS    RESTARTS   AGE
mongo-0   2/2     Running   0          3m38s
mongo-1   0/2     Pending   0          3m23s

$ kubectl get pvc
NAME                               STATUS    VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS    AGE
mongo-persistent-storage-mongo-0   Bound     mongo-local-pv   50Gi       RWO            local-storage   80m
mongo-persistent-storage-mongo-1   Pending 

3)当调度程序未能将节点与PV匹配时。

当使用本地卷时,PV的nodeAffinity是必需的,并且应该是集群中现有节点的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62178124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档