4.5. 持久性卷(PV)
每个 PV 都会包括一个 spec
和 status
,它们分别代表卷的规格和状态,例如:
PersistentVolume
对象定义示例
apiVersion: v1 kind: PersistentVolume metadata: name: pv0001 1 spec: capacity: storage: 5Gi 2 accessModes: - ReadWriteOnce 3 persistentVolumeReclaimPolicy: Retain 4 ... status: ...
4.5.1. 容量
一般情况下,一个持久性卷(PV)有特定的存储容量。这可以通过使用 PV 的 capacity
属性来设置。
目前,存储容量是唯一可以设置或请求的资源。以后可能会包括 IOPS 、 throughput 等属性。
4.5.2. 支持的访问模式
LVMS 是红帽构建的 MicroShift 唯一支持的 CSI 插件。内置在 OpenShift Container Platform 的 hostPath 和 LV 也支持 RWO。
4.5.3. 阶段
卷可以处于以下几个阶段:
阶段 | 描述 |
---|---|
Available | 可用资源,还未绑定到任何声明。 |
Bound | 卷已绑定到一个声明。 |
Released | 以前使用这个卷的声明已被删除,但该资源还没有被集群重新声明。 |
Failed | 卷的自动重新声明失败。 |
您可以运行以下命令来查看绑定到 PV 的 PVC 名称:
$ oc get pv <pv-claim>
4.5.3.1. 挂载选项
您可以使用属性 mountOptions
在挂载 PV 时指定挂载选项。
例如:
挂载选项示例
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: annotations: storageclass.kubernetes.io/is-default-class: "true" name: topolvm-provisioner mountOptions: - uid=1500 - gid=1500 parameters: csi.storage.k8s.io/fstype: xfs provisioner: topolvm.io reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
mountOptions
不会被验证。不正确的值将导致挂载失败,并将事件记录到 PVC。