五、建立pv与pvc
1.PersistenVolume(PV)是外部存储系统中的一块存储空间,由管理员创建和维护,与Volume一样,PV具有持久性,生命周期独立于Pod。
2.PersistenVolumeClaim(PVC)是对PV的申请(Claim).PVC通常由普通用户创建和维护。需要为Pod分配存储资源时,用户可以创建一个PVC。
下面创建一个PV ,配置文件nfs_pv1.yml
apiVersion: V1 kind: PersistenVolume metadata: name: mypv1 spec: capacity: #指定容量 storage: 1Gi accessModes: - ReadWriteOnce #访问模式,还有ReadOnlyMany /ReadOnlymany/ReadWriteMany(RWX) persistenVolumeReclaimPolicy: Recycle storageClassName: nfs ##指定存储的类型 nfs: path: /nfsdata/pv1 #指明nfs的路径 server: ip #指明nfs的ip
ReadWriteOnce(RWO):读写权限,但是只能被单个节点挂载 ; ReadOnlyMany(ROX):只读权限,可以被多个节点挂载 ; ReadWriteMany(RWX):读写权限,可以被多个节点挂载
3.persistentVolumeReclaimPolicy(回收策略)
目前 PV 支持的策略有三种:Retain(保留)- 保留数据,需要管理员手工清理数据; Recycle(回收)- 清除 PV 中的数据,效果相当于执行 rm -rf /thevoluem/*; Delete(删除)- 与 PV 相连的后端存储完成 volume 的删除操作,当然这常见于云服务商的存储服务,比如 ASW EBS。
*不过需要注意的是,目前只有 NFS 和 HostPath 两种类型支持回收策略。当然一般来说还是设置为 Retain 这种策略保险一点。
kubectl create -f nfs_pv1.yml ##创建pv kubectl get pv ##查看pv
pvc的配置文件nfs_pvc1.yml:
kind: PersistenVolumeClaim apiVersion: V1 metadata: name: mypvc1 spec: accessModes: - ReadWriteOnce resources: requests: storage: 1GI storageClassName: nfs