我知道围绕该主题有很多讨论,但不知何故,我无法使其正常工作。
我正在尝试在裸机上安装带有statefulset和nfs持久卷的弹性搜索集群。我的pv,pvc和sc配置如下:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: manual
provisioner: kubernetes.io/no-provisioner
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-storage-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: manual
nfs:
server: 172.23.240.85
path: /servers/scratch50g/vishalg/kube
Statefuleset定义了以下pvc部分:
volumeClaimTemplates:
- metadata:
name: beehive-pv-claim
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: manual
resources:
requests:
storage: 1Gi
现在,当我尝试部署它时,在statefulset上收到以下错误:
pod has unbound immediate PersistentVolumeClaims
当我收到pvc事件时,它显示:
Warning ProvisioningFailed 3s (x2 over 12s) persistentvolume-controller no volume plugin matched
我尝试不提供任何存储类(未创建它),并将其从pv和pvc中全部删除。这次,我得到以下错误:
no persistent volumes available for this claim and no storage class is set
我也尝试在pvc中将storageclass设置为“”,而在pv中没有提及,但它也无法正常工作。
请在这里帮助。我需要检查什么才能使其正常工作?
可以将它与nfs服务器和路径相关(如果偶然,它会被错误地提及),尽管我看到pv创建成功。
EDIT1 :
一个问题是pvc的访问方式不同于pv的访问方式。我纠正了它,现在我的pvc显示为已绑定。
但即使现在,我仍然遇到以下错误:
pod具有未绑定的立即PersistentVolumeClaims
我也尝试使用本地卷,但再次出现相同的错误。 PV和PVC正确绑定,但是statefulset显示上述错误。
使用hostPath卷时,一切正常。
从根本上说我在这里做错了什么吗?
EDIT2
我使本地音量正常工作。 Pod绑定到pvc需要一些时间。等待几分钟后,我的吊舱绑定到了pvc。
我认为,nfs绑定问题可能与许可相关。但是,k8仍然会给出一些错误。
答案 0 :(得分:3)
您也可以尝试匹配accessModes吗?
PVC现在定位到ReadWriteOnce卷。
如果在节点上手动安装nfs卷,则可以调试所有访问/安全问题。