首页/云/云与容器速查/PV、PVC 与访问模式
Kubernetes68 条

PV、PVC 与访问模式

PV 是集群级存储资源,PVC 是命名空间的申领:Pod 通过 claimName 使用 PVC。访问模式、容量与 StorageClass 三个维度的匹配决定能否绑定成功。

云与容器速查云更新于 2026-10-13

PV 与 PVC 是什么

PV(PersistentVolume)是集群级的存储资源抽象,代表一块已经存在的存储,如云盘、NAS、本地 SSD;PVC(PersistentVolumeClaim)是命名空间里的一张申请单,声明要多大容量、什么访问模式、哪类存储。Pod 只引用 PVC,由绑定过程把 PVC 与某个 PV 对上,从而把存储供给与业务使用解耦。

基本信息

作用范围PV 集群级,PVC 命名空间级,绑定后一对一独占
绑定三要素容量足够、accessModes 兼容、storageClassName 一致
动态供给StorageClass 配有 provisioner 时按 PVC 自动建盘,无需手写 PV
回收策略reclaimPolicy 为 Delete 或 Retain,决定删 PVC 后底层存储的去留
查看kubectl get pv / get pvc / describe pvc 看 Events

访问模式速查

模式含义典型后端
ReadWriteOnce单节点可读写挂载云盘等块存储
ReadOnlyMany多节点同时只读共享镜像与静态数据
ReadWriteMany多节点同时读写NAS、NFS 文件存储
ReadWriteOncePod只允许一个 Pod 读写需要强一致单写的场景

PVC 与 Pod 引用

PVC 与 Pod 引用
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: app-data
  namespace: dev
spec:
  accessModes: ["ReadWriteOnce"]   # 单节点读写,云盘常用
  storageClassName: fast-ssd       # 名字必须与 StorageClass 完全一致
  resources:
    requests:
      storage: 20Gi                # 超过 PV 容量则绑不上
---
volumes:                           # Pod spec 中的引用片段
  - name: data
    persistentVolumeClaim:
      claimName: app-data          # 指向同命名空间的 PVC

典型使用场景

  • 数据库数据目录持久化:Pod 反复重建,数据留在卷上不丢
  • StatefulSet 每个副本各绑一块盘,靠 volumeClaimTemplates 自动生成 PVC
  • 多副本只读共享:模型文件、静态资源放 RWX 的 NAS 卷
  • 中间件与日志落盘,避免容器可写层无限膨胀后撑爆节点
  • 大容量冷数据挂在低成本存储类上,与高性能盘分开管理
PVC 长期 Pending 按三步查:storageClassName 是否存在、容量与访问模式是否有 PV 能满足、volumeBindingMode 为 WaitForFirstConsumer 时是否还没有 Pod 触发绑定。最后一种情况下的 Pending 属于正常等待。
动态供给场景不需要手写 PV;只有本地盘、已有 NFS 或必须保留数据时才手工建 PV,并用 storageClassName 与容量精确划定范围,避免把生产盘绑给测试 PVC。
Delete 回收策略下删除 PVC 会连带删除底层云盘,数据不可恢复;生产环境建议 PV 用 Retain,删 PVC 之前先做快照。

易错点

  • RWO 的盘挂给多副本 Deployment:两个 Pod 抢同一块盘,只有一个能起,另一个卡在挂载
  • 未开启 allowVolumeExpansion 就调大 PVC:扩容请求被拒绝或静默不生效
  • 以为删 Pod 会清数据:PV 仍保留,误判后重复写入;而删了 PVC(Delete 策略)才发现数据真没了
  • 容量或访问模式与 PV 不匹配:PVC 一直 Pending,Pod 卡在 ContainerCreating
  • WaitForFirstConsumer 下手写 PV 提前绑定:绑到不合适节点,引发调度死锁

数据来源与参考

  • Kubernetes Docs:Persistent Volumes
  • Kubernetes Docs:Storage Classes

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌