更新时间:2024-08-17 GMT+08:00
本地持久卷概述
本地持久卷介绍
CCE支持使用LVM将节点上的数据卷组成存储池(VolumeGroup),然后划分LV给容器挂载使用。使用本地持久卷作为存储介质的PV的类型可称之为Local PV。
与HostPath卷相比,本地持久卷能够以持久和可移植的方式使用,而且本地持久卷的PV会存在节点亲和性配置,其挂载的Pod会自动根据该亲和性配置进行调度,无需手动将Pod调度到特定节点。
挂载方式
本地持久卷仅支持以下挂载方式:
- 通过动态存储卷使用本地持久卷:即动态创建的方式,在创建PVC时通过指定存储类(StorageClass),即可自动创建对象存储和对应的PV对象。
- 在有状态负载中动态挂载本地持久卷:仅有状态工作负载支持,可以为每一个Pod关联一个独有的PVC及PV,当Pod被重新调度后,仍然能够根据该PVC名称挂载原有的数据。适用于多实例的有状态工作负载。
本地持久卷不支持通过静态PV使用,即不支持先手动创建PV然后通过PVC在工作负载中挂载的方式使用。
约束与限制
- 本地持久卷仅在集群版本 >= v1.21.2-r0 时支持,且需要everest插件版本>=2.1.23,推荐使用>=2.1.23版本。
- 移除节点、删除节点、重置节点和缩容节点会导致与节点关联的本地持久存储卷类型的PVC/PV数据丢失,无法恢复,且PVC/PV无法再正常使用。移除节点、删除节点、重置节点和缩容节点时使用了本地持久存储卷的Pod会从待删除、重置的节点上驱逐,并重新创建Pod,Pod会一直处于pending状态,因为Pod使用的PVC带有节点标签,由于冲突无法调度成功。节点重置完成后,Pod可能调度到重置好的节点上,此时Pod会一直处于creating状态,因为该PVC对应的底层逻辑卷已不存在。
- 请勿在节点上手动删除对应的存储池或卸载数据盘,否则会导致数据丢失等异常情况。
- 本地持久卷为非共享模式,不支持被多个工作负载或者多个任务同时挂载,且不支持被工作负载下多个实例同时挂载。