K8s中的PV的介绍

PV 的生命周期

 PV 生命周期总共四个阶段 :

Available(可用)—— 可用状态,尚未被 PVC 绑定。

Bound(已绑定)—— 绑定状态,已经与某个 PVC 绑定。

Released(已释放)—— 与之绑定的 PVC 已经被删除,但资源尚未被集群回收。

Failed(失败)—— 当删除 PVC 清理资源,自动回收卷时失败,所以处于故障状态。 命令行会显示绑定到 PV 的 PVC 的名称 ——kubectl get pv命令

PV 的常用配置参数

存储能力 (capacity)

PV 可以通过配置 capacity 中的 storage 参数,对 PV 挂多大存储空间进行设置。 目前 capacity 只 有一个设置存储大小的选项,未来可能会增加。

存储卷模式(volumeMode)

PV 可以通过配置 volumeMode 参数,对存储卷类型进行设置,可选项包括: Filesystem: 文件系统,默认是此选项。 Block: 块设备 目前 Block 模式只有 AWSElasticBlockStore、AzureDisk、FC、GCEPersistentDisk、iSCSI、 LocalVolume、RBD、VsphereVolume 等支持)。

访问模式(accessModes)

PV 可以通过配置 accessModes 参数,设置访问模式来限制应用对资源的访问权限,有以下机制访问模 式:

(1) ReadWriteOnce——该卷可以被单个节点以读/写模式挂载

(2) ReadOnlyMany——该卷可以被多个节点以只读模式挂载

(3) ReadWriteMany——该卷可以被多个节点以读/写模式挂载

挂载参数(mountOptions)

PV 可以根据不同的存储卷类型,设置不同的挂载参数,每种类型的存储卷可配置参数都不相同。

存储类 (storageClassName)

PV 可以通过配置 storageClassName 参数指定一个存储类 StorageClass 资源,具有特定 StorageClass 的 PV 只能与指定相同 StorageClass 的 PVC 进行绑定,没有设置 StorageClass 的 PV 也是同样只能与没有指定 StorageClass 的 PVC 绑定。

回收策略(persistentVolumeReclaimPolicy)

PV 可以通过配置 persistentVolumeReclaimPolicy 参数设置回收策略,可选项如下:

Retain(保留): 保留数据,需要由管理员手动清理。

Recycle(回收): 删除数据,即删除目录下的所有文件,比如说执行 rm -rf /thevolume/* 命 令,目前只有 NFS 和 HostPath 支持。

Delete(删除): 删除存储资源,仅仅部分云存储系统支持,比如删除 AWS EBS 卷,目前只有 AWS EBS,GCE PD,Azure 磁盘和 Cinder 卷支持删除。

PVC常用参数

筛选器(selector)

PVC 可以通过在 Selecter 中设置 Laberl 标签,筛选出带有指定 Label 的 PV 进行绑定。 Selecter 中可以指定 matchLabels 或 matchExpressions ,如果两个字段都设定了就需要同时满足 才能匹配。

资源请求(resources)

PVC 设置目前只有 requests.storage 一个参数,用于指定申请存储空间的大小。

存储类(storageClass)

PVC 要想绑定带有特定 StorageClass 的 PV 时,也必须设定 storageClassName 参数,且名称也必 须要和 PV 中的 storageClassName 保持一致。如果要绑定的 PV 没有设置 storageClassName 则 PVC 中也不需要设置。

当 PVC 中如果未指定 storageClassName 参数或者指定为空值,则还需要考虑 Kubernetes 中是否设 置了默认的 StorageClass :(1) 未启用 DefaultStorageClass:等于 storageClassName 值为空。(2) 启用 DefaultStorageClass:等于 storageClassName 值为默认的 StorageClass。 (3)如果设置 storageClassName="",则表示该 PVC 不指定 StorageClass。

访问模式(accessModes)

PVC 中可设置的访问模式与 PV 种一样,用于限制应用对资源的访问权限。

你可能感兴趣的:(运维,K8S,容器)