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之一。