1.7.3. 持久卷¶
持久卷是集群中的一块存储,可以由管理员实现供应或者存储类动态供应。
1.7.3.1. 持久卷申请¶
PV 卷的供应有两种方式:静态供应或动态供应。
1.7.3.2. 静态供应¶
管理员需要提前创建一个pv。
1.7.3.3. 动态供应¶
管理员提供存储类即可, 使用者pvc申请指定这个存储类,会自动创建pv的。
1.7.3.4. 回收¶
回收策略
保留(Retain)
删除
回收
目前,仅 NFS 和 HostPath 支持回收(Recycle)。 AWS EBS、GCE PD、Azure Disk 和 Cinder 卷都支持删除(Delete)。
1.7.3.5. 卷模式¶
volumeMode 属性设置为 Filesystem 的卷会被 Pod 挂载(Mount) 到某个目录。 如果卷的存储来自某块设备而该设备目前为空,Kuberneretes 会在第一次挂载卷之前 在设备上创建文件系统。
1.7.3.6. 访问模式¶
ReadWriteOnce: 被一个节点读写挂载 RWO
ReadOnlyMany: 卷可以被多个节点只读挂载 ROX
ReadWriteMany: 卷可以被多个节点读写挂载 RWX
ReadWriteOncePod: 卷可以被单个pod读写方式挂载,RWOP
1.7.3.7. 存储类¶
早前,Kubernetes 使用注解 volume.beta.kubernetes.io/storage-class 而不是 storageClassName 属性。 这一注解目前仍然起作用,不过在将来的 Kubernetes 发布版本中该注解会被彻底废弃。
1.7.3.8. 卷的状态¶
Available(可用)– 卷是一个空闲资源,尚未绑定到任何申领;
Bound(已绑定)– 该卷已经绑定到某申领;
Released(已释放)– 所绑定的申领已被删除,但是资源尚未被集群回收;
Failed(失败)– 卷的自动回收操作失败。
1.7.3.9. 基于卷快照恢复卷¶
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: restore-pvc
spec:
storageClassName: csi-hostpath-sc
dataSource:
name: new-snapshot-test
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
d之一。