2017-06-14 148 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

相關問題