2017-06-14 43 views
1

我试图将我的Kubernetes集群配置为使用本地NFS服务器来存储持久卷。Kubernetes NFS PersistentVolumeClaim的状态有待处理

我成立了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

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

+0

试试'kubectl describe pvc pvc-50gb'并检查'Events'部分。 – ipeacocks

回答

1

原来,我需要把IP(我也把路径)放在引号中。修复之后,pvc进入状态绑定状态,并且可以正确安装吊舱。

0

我无法对您的帖子发表评论,所以我只会尝试回答这个问题。

当PVC在我的NFS群集上不起作用时,我遇到了2种错误。安装一个PV通常会成功,所以提供的状态信息并不多。

  1. PV和PVC的注释和规格是不一样的。这看起来并非如此。
  2. 使用NFS资源的窗格的节点无法安装资源。在应该挂载NFS资源的节点上尝试mount -t nfs 10.30.136.79:/data/u4 /mnt。这应该成功。如果失败,可能是
    1. 缺少装载权限。在您的NFS服务器中更正/etc/exports
    2. 阻止NFS端口的防火墙。修复防火墙。

还有一件事,在盒中的非特权用户可能有麻烦写NFS资源。 pod中的NFS用户的uid/gid必须与NFS资源的perms匹配。

Bonne的机会!

+0

我能够直接在服务器上安装NFS共享,因此它不是一个权限或网络问题。当我创建pvc时,我在服务器上做了一个tcpdump,并且没有看到来自任何K8服务器的任何连接,所以它们甚至不尝试建立连接。 – zoidberg

相关问题