NFS

首先,安装好一个NFS Server(参考https://pshizhsysu.gitbooks.io/linux/chang-yong-ruan-jian-an-zhuang-pian/nfs.html)。

假设上面安装的NFS Server export的目录为/nfs,接着我们在/nfs下创建一个子目录/dir1,并且在子目录下创建一个文件hello.txt

$ pwd
/nfs/dir1

$ ls
hello.txt

然后我们在k8s集群中创建一个PV与PVC,yaml文件如下(这里我们把回收策略设置为了Recycle):

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv1
spec:
  storageClassName: nfs
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 1Gi
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    server: 192.168.2.101
    path: /nfs/dir1

创建好之后,我们查看结果,发现它们已经绑定好了

但是,此时NFS并没有Mount到k8s的节点上(即在k8s的节点上执行df -hT | grep nfs的结果为空)。

接着,我们创建如下的一个Pod

创建好Pod后,我们查看Pod所在的节点上已经挂载上了NFS目录

接着,我们在Pod里面的/container目录下,可以看到NFS上的hello.txt文件

接着,我们删除这个Pod,发现该节点上NFS的挂载就消失了。

接着,我们再删除PVC,我们会发现PV的状态先是变成了Released,然后马上就变成了Availabe;同时,我们也发现,NFS server的/nfs/dir1/目录下的内容被清空了

这是因为我们把PV的回收策略设置为了Recycle

Last updated

Was this helpful?