Kubernetes NFS持久卷申请状态为Pending。

4
我将尝试配置我的Kubernetes集群,以便使用本地NFS服务器进行持久性存储卷。
我按照以下方式设置了PersistentVolume:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: hq-storage-u4
  namespace: my-ns
spec:
  capacity:
    storage: 10Ti
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /data/u4
    server: 10.30.136.79
    readOnly: false

kubectl中PV看起来很正常。

$ kubectl get pv
NAME            CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS     CLAIM             STORAGECLASS   REASON    AGE
hq-storage-u4   10Ti       RWX           Retain          Released   my-ns/pv-50g                               49m

我会尝试创建持久化卷索取(PersistentVolumeClaim):
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-50gb
  namespace: my-ns
spec:
  accessModes:
  - ReadWriteMany
  resources:
     requests:
       storage: 5Gi

Kubectl显示pvc状态为挂起

$ kubectl get pvc
NAME       STATUS    VOLUME    CAPACITY   ACCESSMODES   STORAGECLASS   AGE
pvc-50gb   Pending                                                     16m

当我尝试将卷添加到部署中时,出现以下错误:

[SchedulerPredicates failed due to PersistentVolumeClaim is not bound: "pvc-50gb", which is unexpected., SchedulerPredicates failed due to PersistentVolumeClaim is not bound: "pvc-50gb", which is unexpected., SchedulerPredicates failed due to PersistentVolumeClaim is not bound: "pvc-50gb", which is unexpected.]

如何将PVC置于工作状态?

1
尝试运行 kubectl describe pvc pvc-50gb 命令并检查 Events 部分。 - ipeacocks
2个回答

2

结果发现我需要将IP(我还放了路径)用引号括起来。修复后,pvc的状态变为Bound,pod可以正确挂载。


0

我不能在您的帖子上发表评论,所以我会尝试回答这个问题。

当我的 PVC 在 NFS 集群中无法工作时,我遇到了两种错误。通常情况下,安装 PV 会成功,因此提供的状态消息并不多。

  1. PV 和 PVC 的注释和规范不同。但是看起来不是这种情况。
  2. 使用 NFS 资源的 Pod 的节点无法挂载该资源。请在应该挂载 NFS 资源的节点上尝试 mount -t nfs 10.30.136.79:/data/u4 /mnt。这应该可以成功。如果失败,可能是以下原因之一:
    1. 缺少挂载许可权限。在您的 NFS 服务器中修复 /etc/exports
    2. 防火墙阻止了 NFS 端口。修复防火墙。

还有一件事,在 Pod 中的非特权用户可能会遇到写入 NFS 资源的问题。Pod 中 NFS 用户的 uid/gid 必须匹配 NFS 资源的权限。

祝好运!


1
我能够直接在服务器上挂载NFS共享,所以这不是权限或网络问题。当我创建pvc时,我在服务器上进行了tcpdump,但我没有看到任何来自K8s服务器的连接,所以它们甚至没有尝试建立连接。 - zoidberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接