在 Kubernetes 中,PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 的回收策略(Reclaim Policy)决定了当 PVC 被删除后,PV 及底层存储资源的处理方式。以下是配置回收策略的核心观点:
-
PV 回收策略配置:
- 在 PV 的 YAML 定义中,通过
persistentVolumeReclaimPolicy
字段指定策略。可选值包括:- Retain(默认):删除 PVC 后,PV 保持
Released
状态,需手动清理数据并重新绑定。 - Delete:自动删除 PV 及底层存储(如云存储卷)。
- Recycle(已弃用):通过基础文件系统删除数据,不推荐使用。
- Retain(默认):删除 PVC 后,PV 保持
- 在 PV 的 YAML 定义中,通过
-
PVC 删除行为:
- 删除 PVC 时,若 PV 策略为
Delete
,PV 和底层存储会被自动删除;若为Retain
,PV 保留但不可用,需管理员介入。
- 删除 PVC 时,若 PV 策略为
-
动态供给与 StorageClass:
- 对于动态创建的 PV,回收策略由 StorageClass 的
reclaimPolicy
字段控制(默认为Delete
)。 - 修改 StorageClass 的回收策略不会影响已创建的 PV,需单独更新 PV 定义。
- 对于动态创建的 PV,回收策略由 StorageClass 的
-
实践建议:
- 生产环境优先选择 Retain:避免误删关键数据,结合备份策略管理存储资源。
- 慎用 Delete:确保底层存储支持自动删除且数据可丢弃。
- 避免 Recycle:此策略在 Kubernetes 1.15+ 已废弃,推荐通过 CSI 驱动或存储系统实现数据清理。