【问题标题】:aws-efs "ProvisioningFailed - no volume plugin matched" in k8s pvck8s pvc 中的 aws-efs “ProvisioningFailed - 没有卷插件匹配”
【发布时间】:2019-01-24 20:31:57
【问题描述】:

我部署了 efs-provisioner 以将 k8s 中的 aws-efs 作为 pvc 挂载。然后我在创建 pvc 时收到“没有卷插件匹配”错误。

$ kubectl describe pvc efs -n dev
Name:       efs
Namespace:  dev
StorageClass:   aws-efs
Status:     Pending
Volume:     
Labels:     <none>
Annotations:    volume.beta.kubernetes.io/storage-class=aws-efs
Capacity:   
Access Modes:   
Events:
  FirstSeen LastSeen    Count   From                SubObjectPath   Type        Reason          Message
  --------- --------    -----   ----                -------------   --------    ------          -------
  32m       2m      21  persistentvolume-controller         Warning     ProvisioningFailed  no volume plugin matched

 kind: StorageClass
 apiVersion: storage.k8s.io/v1
 metadata:
   name: aws-efs
 provisioner: kubernetes.io/aws-efs

efs-provisioner-dep.yml https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/aws/efs/deploy/deployment.yaml

【问题讨论】:

  • 您的集群中是否正在运行EFS provisioner?是the RBAC config correct
  • @MatthewLDaniel 是的。 efs-provisioner pod 已启动并沿 RBAC 运行。我按照 efs-provisioner github repo 中给出的步骤进行操作。
  • efs-provisioner 日志有什么有趣的说法吗?那么控制器管理器的日志呢?
  • [efs-provisioner 日志] “已启动配置控制器 kubernetes.io/aws-efs_efs-provisioner-7cc9c8fbff-lqxhw_0b01d56f-207b-11e9-8184-0a5864600209!” ---------- [controller-mnanager 日志]“为声明 acdc-dev/efs 查找配置插件时出错:没有卷插件匹配 I0127 20:33:04.230303 1 event.go:221] 事件(v1. ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"acdc-dev", Name:"efs", UID:"8da02cd5-2272-11e9-9eec-0693f1251186", APIVersion:"v1", ResourceVersion:"527618", FieldPath: “”}):类型:'警告'原因:'ProvisioningFailed'没有匹配的卷插件“@MatthewLDaniel
  • 你能用kubectl get -o yaml storageclass aws-efs的输出更新你的问题吗,deploy efs-provisioner类似

标签: kubernetes kubernetes-pvc


【解决方案1】:

我知道这有点旧,并且 efs 供应商已正式弃用。但仍然看到一些集群和客户在使用它。我遇到了同样的问题并花了很长时间进行故障排除,我相信这对遇到同样问题的人会有所帮助。

我在将 efs provisoner 升级到最新的编号版本 v2.4.0 后遇到了这个问题,可以在 here 找到它

升级后它完全进入了问题中描述的状态,但我可以确认在我的案例 v0.1.2 恢复到旧版本后它已经开始工作。

花了一些时间后,仔细分析this github 问题中的答案,我能够通过以下更改修复它。

  1. 将 StorageClass prvisioner 从 kubernetes.io/aws-efs 更改为其他内容,例如 example.com/aws-efs
  2. 在环境变量中使用更新后的配置器更新 efs 配置器部署,如下所示
         env:
           - name: FILE_SYSTEM_ID
             value: "{{ .Values.efs_fs_id }}"
           - name: AWS_REGION
             value: "{{ .Values.region }}"
           - name: PROVISIONER_NAME
             value: "example.com/aws-efs"

确保在使用更新的配置器创建新的存储类之前删除以前使用 kubernetes.io/aws-efs 的存储类。

我希望这会有所帮助。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2021-08-27
    • 2018-01-29
    • 2021-05-12
    • 1970-01-01
    • 2020-09-22
    • 2021-12-23
    相关资源
    最近更新 更多