3

我知道围绕这个话题有很多讨论,但不知何故,我无法让它发挥作用。
我正在尝试在裸机上安装带有 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 应该也会给出一些错误。

4

1 回答 1

3

您也可以尝试匹配 accessModes 吗?

PVC 现在以 ReadWriteOnce 卷为目标。

如果您手动在节点上挂载 nfs 卷,则可以调试任何访问/安全问题。

于 2019-08-02T06:52:16.050 回答