首页 文章

Kubernetes NFS PersistentVolumeClaim的状态为Pending

提问于
浏览
1

我正在尝试将我的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

PV在kubectl中看起来很好

$ 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状态为Pending

$ 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进入工作状态?

2 回答

  • 1

    事实证明,我需要把IP(我也把路径)放在引号中 . 修复之后,pvc进入状态Bound,并且pod可以正确安装 .

  • 0

    我无法对你的帖子发表评论,所以我只想尝试回答这个问题 .

    当PVC在我的NFS群集上不起作用时,我遇到了两种错误 . 安装PV通常会成功,因此提供的状态消息并不多见 .

    • PV和PVC的注释和规格不同 . 这看起来并非如此 .

    • 使用NFS资源的pod的节点无法装入资源 . 在应该挂载NFS资源的节点上尝试 mount -t nfs 10.30.136.79:/data/u4 /mnt . 这应该成功 . 如果失败了,那可能就是

    • 缺少装载权限 . 在NFS服务器中纠正 /etc/exports .

    • 阻止NFS端口的防火墙 . 修复防火墙 .

    还有一件事,pod中的非特权用户可能无法写入NFS资源 . pod中NFS用户的uid / gid必须与NFS资源的perms相匹配 .

    Bonne的机会!

相关问题