我部署了efs-provisioner来将aws-efs作为pvc安装在k8s中。然后在创建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
答案 0 :(得分:1)
我知道这有点旧,并且efs Provisioner已正式弃用。但是仍然看到一些集群和客户正在使用它。我遇到了同样的问题,花了很多时间进行故障排除,我相信这对于遇到同样问题的人会有所帮助。
在将efs provisoner升级到最新的编号版本v2.4.0(可在here中找到
)后,我遇到了问题升级后,问题完全按照问题中所述进行了,但是在我的案例v0.1.2中,我可以确认它已恢复为旧版本后开始工作。
花了一段时间后,仔细分析了this github问题中的答案,我能够通过以下更改对其进行修复。
kubernetes.io/aws-efs
更改为诸如example.com/aws-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"
在使用更新的预配器创建新的StorageClass之前,请确保使用kubernetes.io/aws-efs
删除以前的StorageClass。
我希望这会有所帮助。谢谢。