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 

定義kubectl apply -f pv-pvc.ymlを実行した後、nfs-pvcnfs-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は、私はGoogleのコンテナEngine上で作成されたノードのディスク上のボリュームです。 私は何かを逃したことがありますか?

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

のバージョンでは、私は解決策を見つけました。 PVと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 

私はそれに役立つことを願っています。

関連する問題