[root@cicd opt]# ls
harbor nfsshare [root@cicd opt]# chmod -R 777 nfsshare/
[root@node1 network-scripts]# showmount -e 192.168.253.9 Export list for 192.168.253.9: /opt/nfsshare *
mypv1
,配置文件
nfs-pv1.yml
以下:
capacity
指定 PV 的容量爲 1G。
accessModes
指定訪問模式爲
ReadWriteOnce
,支持的訪問模式有:
persistentVolumeReclaimPolicy
指定當 PV 的回收策略爲
Recycle
,支持的策略有:
rm -rf /thevolume/*
。
storageClassName
指定 PV 的 class 爲
nfs
。至關於爲 PV 設置了一個分類,PVC 能夠指定 class 申請相應 class 的 PV。
mypv1
:[root@cicd yml]# kubectl apply -f nfs-pv1.yml persistentvolume "mypv1" created [root@cicd yml]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mypv1 1G RWO Recycle Available nfs 2m
STATUS
爲
Available
,表示
mypv1
就緒,能夠被 PVC 申請。
mypvc1
,配置文件
nfs-pvc1.yml
以下:
mypvc1
:[root@cicd yml]# kubectl apply -f nfs-pvc1.yml persistentvolumeclaim "mypvc1" created [root@cicd yml]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mypvc1 Bound mypv1 1G RWO nfs 9s
kubectl get pvc
和
kubectl get pv
的輸出能夠看
到 mypvc1
已經 Bound 到 mypv1
,申請成功。
pod1.yml
以下:
volumes
中經過 persistentVolumeClaim
指定使用 mypvc1
申請的 Volume。
mypod1
:
[root@cicd yml]# kubectl apply -f pod1.yml pod "mypod1" created [root@cicd yml]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE httpd-deployment-67b8d86468-9bz57 1/1 Running 1 19h 172.20.104.9 192.168.253.11 httpd-deployment-67b8d86468-skw2n 1/1 Running 0 19h 172.20.135.28 192.168.253.10 httpd-deployment-67b8d86468-zmr75 1/1 Running 1 19h 172.20.104.7 192.168.253.11 mypod11/1 running 8s 19 172.20.135.33 192.168.253.10
[root@cicd yml]# kubectl exec -it mypod1 /bin/sh / # ls bin etc mydata root tmp var dev home proc sys usr / # cd mydata/mydata # touch hello
二、cd到與宿主機映射的目錄下查看是否映射成功。node
[root@cicd yml]# cd /opt/nfsshare/ [root@cicd nfsshare]# ls pv1 [root@cicd nfsshare]# cd pv1/ [root@cicd pv1]# ls hello
/mydata/hello
確實已經保存到了 NFS 服務器目錄 /nfsdata/pv1
中。
[root@cicd pv1]# kubectl get pvc
No resources found.
[root@cicd pv1]# cd /opt/nfsshare/pv1/
[root@cicd pv1]# ls
[root@cicd pv1]#
[root@cicd pv1]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mypv1 1G RWO Recycle Available nfs 23m
[root@cicd yml]# kubectl apply -f nfs-pv1.yml persistentvolume "mypv1" configured
[root@cicd yml]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mypv1 1G RWO Retain Available nfs
[root@cicd pv1]# kubectl delete pvc mypvc1 persistentvolumeclaim "mypvc1" deleted [root@cicd pv1]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mypv1 1G RWO Retain Released default/mypvc1 nfs 37m
[root@cicd pv1]# cd /opt/nfsshare/pv1/
[root@cicd pv1]# ls
hello
[root@cicd yml]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mypv1 1G RWO Retain Available nfs 49s