Kubernetes中的PV(Persistent Volume)是集群中的一种资源,用于表示网络存储卷,即物理存储资源。PV可以由集群管理员手动创建,也可以由存储系统提供程序动态创建。PV提供了一种抽象,将实际的存储与使用该存储的应用程序隔离开来。在使用PV之前,我们需要先定义PV访问模式和回收策略。
访问模式
PV可以支持以下三种访问模式:
- ReadWriteOnce(RWO):该卷可以被单个节点以读写方式挂载。
- ReadOnlyMany(ROX):该卷可以被多个节点以只读方式挂载。
- ReadWriteMany(RWX):该卷可以被多个节点以读写方式挂载。
下面是一个示例PV定义,使用RWO访问模式:
代码语言:javascript复制apiVersion: v1
kind: PersistentVolume
metadata:
name: example-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: example-storage
hostPath:
path: /data/example
在上面的示例中,我们定义了一个使用HostPath作为后端的PV对象。该PV具有10GB的存储空间,使用“ReadWriteOnce”访问模式,表示只能由单个节点以读写方式访问。当PV不再需要使用时,指定了保留策略“Retain”,该策略表示即使PVC已经删除了,PV的数据也将保留不变。在这个示例中,PV使用的存储类别为“example-storage”。