在Kubernetes中,存储卷的回收策略(PersistentVolumeReclaimPolicy)决定了当PersistentVolumeClaim(PVC)被删除后,对应的PersistentVolume(PV)及底层存储资源的处理方式。以下是三种策略的配置及实践经验:
-
Retain(保留):
- 场景:生产环境核心数据卷,需保留数据供后续恢复或迁移。
- 配置:在PV定义中设置
persistentVolumeReclaimPolicy: Retain
。 - 注意:删除PVC后,PV状态变为
Released
,需手动清理数据并删除PV才能复用。
-
Delete(删除):
- 场景:临时或测试环境,需自动释放存储资源。
- 配置:动态供应时在StorageClass设置
reclaimPolicy: Delete
;静态PV直接定义。 - 风险:部分云厂商存储(如AWS EBS)需显式授权删除权限,否则策略失效。
-
Recycle(废弃,慎用):
- 现状:Kubernetes 1.15+已弃用,仅适用于NFS等少数存储类型。
- 替代方案:改用动态供应(Dynamic Provisioning)或手动清理。
实践经验:
- 生产环境优先使用
Retain
,避免误删数据。 - 动态供应场景中,通过StorageClass统一管理回收策略。
- 跨云/混合云环境下,需验证存储插件对策略的支持情况(如Ceph RBD不支持Delete)。
- 定期清理
Released
状态的PV,避免存储资源泄漏。