2

PersistentVolumeClaim을 gcePersistentDisk PersistentVolume으로 바인딩하고 싶습니다. 단계 아래 나는 얻기를 위해 행한 :gcePersistentDisk로 영구 볼륨 클레임을 바인딩하는 방법은 무엇입니까?

gcePersistentDisk의

1. 창조 :

gcloud compute disks create --size=2GB --zone=us-east1-b gce-nfs-disk

2. 정의 PersistentVolume과 PersistentVolumeClaim

# pv-pvc.yml 
apiVersion: v1 
kind: PersistentVolume 
metadata: 
    name: nfs-pv 
spec: 
    capacity: 
    storage: 2Gi 
    accessModes: 
    - ReadWriteOnce 
    gcePersistentDisk: 
    pdName: gce-nfs-disk 
    fsType: ext4 
--- 
apiVersion: v1 
kind: PersistentVolumeClaim 
metadata: 
    name: nfs-pvc 
    labels: 
    app: test 
spec: 
    accessModes: 
    - ReadWriteOnce 
    resources: 
    requests: 
     storage: 2Gi 

nfs-pvckubectl apply -f pv-pvc.yml를 실행 한 후 nfs-pv으로 바인딩되지 않았습니다. 사실, 아래에 내가 가지고있는 PersistentVolume 및 PersistentVolumeClaim의 목록입니다 :

$ kubectl get pv 
NAME          CAPACITY ACCESS MODES RECLAIM POLICY STATUS  CLAIM    STORAGECLASS REASON AGE 
nfs-pv          2Gi  RWO   Retain   Available            30s 
pvc-16e4cdf2-cd3d-11e7-83ae-42010a8e0243 2Gi  RWO   Delete   Bound  default/nfs-pvc standard     26s 
$ kubectl get pvc 
NAME  STATUS VOLUME          CAPACITY ACCESS MODES STORAGECLASS AGE 
nfs-pvc Bound  pvc-16e4cdf2-cd3d-11e7-83ae-42010a8e0243 2Gi  RWO   standard  59s 

얻어진 PersistentVolume 내가 구글 컨테이너 엔진에서 생성 된 노드의 디스크에있는 볼륨입니다. 그럼 내가 놓친 게 있니?

PS :는 Kubernetes

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.3", GitCommit:"f0efb3cb883751c5ffdbe6d515f3cb4fbe7b7acd", GitTreeState:"clean", BuildDate:"2017-11-08T18:39:33Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"} 
Server Version: version.Info{Major:"1", Minor:"7+", GitVersion:"v1.7.8-gke.0", GitCommit:"a7061d4b09b53ab4099e3b5ca3e80fb172e1b018", GitTreeState:"clean", BuildDate:"2017-10-10T18:48:45Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"} 
+1

PV의 이름은 my-pvc이고 PVC는 my-pvc.However입니다. 'Kubectl get pv, pvc'명령의 결과는 nfd-pv, nfs-pvc와 다릅니다. 왜 이런 행동입니까? –

+0

나는 당신의 요점을 알아 냈다. 원래 이름이 다시 붙여집니다. 그러나 어쨌든, 문제는 여전히 여기 있습니다 ... –

답변

1

의 버전 I는 솔루션을 발견했다. 태양 광 및 PVC의 새로운 정의 아래

: 이러한 수정 후

apiVersion: v1 
kind: PersistentVolume 
metadata: 
    name: nfs-pv 
    labels: 
    app: test # the label has been added to make sure the bounding is working as expected 
spec: 
    capacity: 
    storage: 2Gi 
    accessModes: 
    - ReadWriteOnce 
    gcePersistentDisk: 
    pdName: gce-nfs-disk 
    fsType: ext4 
--- 
apiVersion: v1 
kind: PersistentVolumeClaim 
metadata: 
    name: nfs-pvc 
    labels: 
    app: test 
spec: 
    accessModes: 
    - ReadWriteOnce 
    storageClassName: "" # the storageClassName has to be specified 
    resources: 
    requests: 
     storage: 2Gi 
    selector: 
    matchLabels: 
     app: test 

,이 경계 근무입니다 :

$ kubectl get pvc 
NAME  STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE 
nfs-pvc Bound  nfs-pv 2Gi  RWO       8s 
$ kubectl get pv 
NAME  CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM    STORAGECLASS REASON AGE 
nfs-pv 2Gi  RWO   Retain   Bound  default/nfs-pvc       22m 

나는 그것이 도움이되기를 바랍니다.