You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置Delete回收策略后NFS Persistent Volume仍未删除的问题

问题分析与解决方案

核心原因

你手动创建的Persistent Volume(PV),即便配置了persistentVolumeReclaimPolicy: Delete,Kubernetes也只会删除集群内的PV对象,不会自动删除后端的AWS EFS存储卷。这是因为:

  • Delete回收策略的完整自动清理仅对通过StorageClass动态创建的PV生效:Kubernetes会调用对应存储驱动(如EFS CSI驱动)来删除后端的实际存储资源。
  • 静态手动创建的PV,Kubernetes无法感知后端存储的创建逻辑,仅能管理集群内的PV对象生命周期,不会触发现有后端存储的删除操作。

验证当前状态

  1. 检查K8s内的PV是否已被删除:
    kubectl get pv pv001
    
    如果返回NotFound,说明Kubernetes已经执行了Delete策略删除了PV对象,只是后端EFS未被清理。
  2. 确认AWS EFS的状态:
    aws efs describe-file-systems --file-system-id fs-0bb.efs.us-east-2.amazonaws.com
    
    会返回该EFS卷的详细信息,证明其仍存在。

实现预期行为的正确方式

要让PVC删除后自动清理后端EFS卷,需要使用动态PV创建(依赖AWS EFS CSI驱动):

1. 部署AWS EFS CSI驱动

确保集群内已部署EFS CSI驱动(按AWS官方标准步骤部署即可)。

2. 创建EFS StorageClass

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: efs-sc
provisioner: efs.csi.aws.com
reclaimPolicy: Delete
parameters:
  provisioningMode: efs-ap
  directoryPerms: "700"

若希望自动创建新EFS卷,无需指定fileSystemId;若要绑定现有EFS,可添加该参数。

3. 创建关联该StorageClass的PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: efs-pvc
spec:
  accessModes:
    - ReadOnlyMany
  storageClassName: efs-sc
  resources:
    requests:
      storage: 3Gi

此时PVC会动态生成PV,当删除PVC时,Kubernetes会通过EFS CSI驱动自动删除后端的EFS卷(自动创建模式下),同时删除PV对象。

当前手动清理方案

对于你已创建的静态PV对应的EFS卷,只能手动清理:

  • 通过AWS控制台:进入EFS服务页面,找到fs-0bb.efs.us-east-2.amazonaws.com并执行删除操作。
  • 通过AWS CLI:
    aws efs delete-file-system --file-system-id fs-0bb.efs.us-east-2.amazonaws.com
    

内容的提问来源于stack exchange,提问作者meallhour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:15:57