在我们的应用中可能经常有文件存储的需求,在docker的部署中,我们是通过将容器中的目录直接挂载到宿主机的目录上来解决这个问题的,那么k8s部署的方式肯定有所不同,k8s因为是多节点的,每个pod挂载的是对应节点的某个目录,这个会导致节点数据的一致性问题;在k8s中主要通过pvc的方式进行文件的挂载管理;
1.PVC
PVC 的全称是:PersistentVolumeClaim(持久化卷声明),PVC 是用户存储的一种声明,PVC 消耗的是 PV 资源,用不需要关心底层的存储实现细节,只需要直接使用 PVC 即可。
在使用 PVC 之前,我们还得把其他节点上的 nfs 客户端给安装上,使用命令:
yum -y install nfs-utils rpcbind
在使用PVC之前,我们要先创建PV
2.创建PV
yml文件如下所示:
apiVersion: v1
kind: PersistentVolume
metadata:
name: powerflow-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
storageClassName: powerflow-pv
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /mnt/data/pv
server: 172.26.4.13
这里申请的存储是10g,然后nfs目录时/mnt/data/pv这个目录;读写的方式指PV 能以 read-write 模式 mount 到多个节点;
storageClassName 指定 PV 的 class 为 powerflow-pv。相当于为 PV 设置了一个分类,PVC 可以指定 class 申请相应 class

本文详细介绍了Kubernetes中PersistentVolumeClaim(PVC)和PersistentVolume(PV)的使用方法,包括如何通过NFS创建PV,配置PVC,并在Pod中挂载使用,确保多节点间的数据一致性。
最低0.47元/天 解锁文章
1万+





