我正在尝试将我的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 回答
事实证明,我需要把IP(我也把路径)放在引号中 . 修复之后,pvc进入状态Bound,并且pod可以正确安装 .
我无法对你的帖子发表评论,所以我只想尝试回答这个问题 .
当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的机会!