我知道围绕这个话题有很多讨论,但不知何故,我无法让它发挥作用。
我正在尝试在裸机上安装带有 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 的 accessmode 与 pv 的 accessmode 不同。我得到了纠正,现在我的 pvc 显示为绑定。
但现在,我得到以下错误:
pod has unbound immediate PersistentVolumeClaims 我也尝试使用本地卷,但同样的错误。PV 和 PVC 绑定正确,但 statefulset 显示上述错误。
使用 hostPath 卷时,一切正常。
从根本上说我在这里做错了什么吗?
EDIT2
我让本地卷正常工作。pod 需要一些时间才能绑定到 pvc。等待几分钟后,我的 pod 绑定到 pvc。
我认为,nfs 绑定问题可能更多与权限相关。但是,k8s 应该也会给出一些错误。