更新时间:2024-01-26 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对应的底层逻辑卷已不存在。
  • 请勿在节点上手动删除对应的存储池或卸载数据盘,否则会导致数据丢失等异常情况。
  • 本地持久卷不支持被多个工作负载或多个任务同时挂载。