1、为什么容器需要持久化存储?
Kubernetes 中的 Pod 是短暂的、易变的:
- 重建 → 目录重置
- 调度到新节点 → 本地文件丢失
- 版本升级 → 数据不保证存在
这意味着:
⛔ 写入容器本地 /data 目录的文件无法在 Pod 重启后保留。
✔ 必须使用 Kubernetes Volume 或 PV/PVC/SC 来实现真正的持久化。
2、Volume:最基础的存储单元
Volume 是挂载到 Pod 里的目录,生命周期跟随 Pod。常用 Volume 类型:

Volume 只是"挂载点",并不解决持久化的全生命周期管理。
3、PV(PersistentVolume):集群级资源
PV 是集群管理员提供的"存储池",类似:
- 云盘(EBS、阿里云 ESSD)
- NAS 文件系统
- Ceph RBD
- NFS 共享目录
PV 有两种提供方式:
- 静态供应(Static Provisioning):管理员手动创建 PV
- 动态供应(Dynamic Provisioning):依赖 StorageClass 自动创建
PV 是真正的数据实体资源:
bash
apiVersion: v1
kind:PersistentVolume
metadata:
name:pv-nfs
spec:
capacity:
storage:10Gi
accessModes:
-ReadWriteMany
nfs:
path:/data
server:10.0.0.10
4、PVC(PersistentVolumeClaim):用户对存储的需求声明
PVC 类似"申请单":"我要一个 10Gi 的磁盘,需要 ReadWriteOnce"。系统会自动寻找合适的 PV 并绑定:
bash
apiVersion: v1
kind:PersistentVolumeClaim
metadata:
name:data-claim
spec:
accessModes:
-ReadWriteOnce
resources:
requests:
storage: 10Gi
绑定后,Pod 就可以挂载该 PVC。
5、StorageClass:动态供应的关键
如果你不想管理员手动创建 PV,那么 StorageClass 就是"自动化工厂"。常见的 Provisioner:
典型 SC 示例:
bash
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast-ssd
provisioner: diskplugin.csi.alibabacloud.com
parameters:
type: cloud_ssd
reclaimPolicy: Retain
当 PVC 指定:
storageClassName: fast-ssd
Kubernetes 会自动创建 PV → 绑定 PVC → 挂载到 Pod,完全自动化。
6、三者关系,一张图搞懂
bash
用户(开发者)
│ 申请
▼
PVC(需求声明:我要多大?什么模式?)
│ 匹配/动态创建
▼
PV(实际卷:NFS、云盘、Ceph、NAS)
│ 与 Pod 挂载
▼
Pod(业务容器读取/写入数据)
如果启用了 StorageClass:PVC → 自动创建 PV → 挂载到 Pod,实现按需分配。
一句话概括:Pod 用 PVC,PVC 找 PV,PV 由 StorageClass 自动创建。
7、实战示例:Pod 挂载持久化卷
bash
apiVersion: v1
kind:Pod
metadata:
name:app
spec:
containers:
-name:web
image:nginx
volumeMounts:
-mountPath:"/usr/share/nginx/html"
name:html-volume
volumes:
-name:html-volume
persistentVolumeClaim:
claimName: data-claim
Pod 删除后,数据依然在 PV 中保留。
8、关键参数与最佳实践
AccessModes

ReclaimPolicy
- Retain(保留数据,最安全)
- Delete(PVC 删除后自动清理 PV)
- Recycle(已废弃)
最佳实践
✔ 生产优先使用 CSI 插件
✔ 建议 RWX 使用 NAS / CephFS,RWO 使用云盘
✔ 强调 StorageClass 实现自动化供应
✔ 严禁生产使用 hostPath
9、总结
Kubernetes 持久化存储是 Stateful 应用落地的关键,三者关系可以总结为:
- Volume:挂载目录
- PV:实际存储资源
- PVC:用户申请
- StorageClass:自动创建 PV 的工厂
理解 PV/PVC/SC 是部署数据库、消息队列、文件服务的基础技能。