[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