NFS PersistentVolume — Kubernetes(38)

in kubernetes •  7 years ago  (edited)

上一节我们介绍了 PV 和 PVC,本节通过 NFS 实践。

作为准备工作,我们已经在 k8s-master 节点上搭建了一个 NFS 服务器,目录为 /nfsdata

732.png

下面创建一个 PV mypv1,配置文件 nfs-pv1.yml 如下:

733.png

capacity 指定 PV 的容量为 1G。

accessModes 指定访问模式为 ReadWriteOnce,支持的访问模式有:
ReadWriteOnce – PV 能以 read-write 模式 mount 到单个节点。
ReadOnlyMany – PV 能以 read-only 模式 mount 到多个节点。
ReadWriteMany – PV 能以 read-write 模式 mount 到多个节点。

persistentVolumeReclaimPolicy 指定当 PV 的回收策略为 Recycle,支持的策略有:
Retain – 需要管理员手工回收。
Recycle – 清除 PV 中的数据,效果相当于执行 rm -rf /thevolume/*
Delete – 删除 Storage Provider 上的对应存储资源,例如 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等。

storageClassName 指定 PV 的 class 为 nfs。相当于为 PV 设置了一个分类,PVC 可以指定 class 申请相应 class 的 PV。

⑤ 指定 PV 在 NFS 服务器上对应的目录。

创建 mypv1

734.png

STATUSAvailable,表示 mypv1 就绪,可以被 PVC 申请。

接下来创建 PVC mypvc1,配置文件 nfs-pvc1.yml 如下:

735.png

PVC 就很简单了,只需要指定 PV 的容量,访问模式和 class。

创建 mypvc1

736.png

kubectl get pvckubectl get pv 的输出可以看到 mypvc1 已经 Bound 到 mypv1,申请成功。

接下来就可以在 Pod 中使用存储了,Pod 配置文件 pod1.yml 如下:

737.png

与使用普通 Volume 的格式类似,在 volumes 中通过 persistentVolumeClaim 指定使用 mypvc1 申请的 Volume。

创建 mypod1

738.png

验证 PV 是否可用:

739.png

可见,在 Pod 中创建的文件 /mydata/hello 确实已经保存到了 NFS 服务器目录 /nfsdata/pv1 中。

如果不再需要使用 PV,可用删除 PVC 回收 PV,下节我们详细讨论。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

您好,我在执行touch命令创建创建hello文件时,报了
“touch: /mydata/hello: Permission denied
command terminated with exit code 1”
然后尝试进入到容器中去执行touch命令,发现也没有权限,执行chmod试图修改权限也没有成功,请问下是不是配置文件中,设置mydata这个目录时,需要制定权限?