跳转至

回收 PV

NebulaGraph Operator 使用持久化卷 PV(Persistent Volume)和持久化卷声明 PVC(Persistent Volume Claim)来存储持久化数据。如果用户不小心删除了一个NebulaGraph集群,默认 PV 和 PVC 对象及其数据仍可保留,以确保数据安全。

用户也可以在集群实例的配置文件中通过设置参数spec.enablePVReclaimtrue来定义在删除集群后自动删除 PVC 以释放数据。至于在删除 PVC 后是否删除 PV,用户需要自定义 PV 的回收策略。参见 StorageClass 中设置 reclaimPolicyPV Reclaiming 了解 PV 回收策略。

前提条件

已使用 K8s 创建一个集群。具体步骤,参见使用 Kubectl 创建NebulaGraph集群

注意事项

不支持在集群运行时动态增加或挂载 PV。

操作步骤

以下示例使用名为nebula的集群、名为nebula_cluster.yaml的 YAML 配置文件,说明如何设置enablePVReclaim

  1. 执行以下命令进入nebula集群的编辑页面。

    kubectl edit nebulaclusters.apps.nebula-graph.io nebula
    
  2. 在 YAML 文件的spec配置项中,添加enablePVReclaim并设置其值为true

    apiVersion: apps.nebula-graph.io/v1alpha1
    kind: NebulaCluster
    metadata:
      name: nebula
    spec:
      enablePVReclaim: true  //设置其值为 true。
      graphd:
        image: vesoft/nebula-graphd
        logVolumeClaim:
          resources:
            requests:
              storage: 2Gi
          storageClassName: fast-disks
        replicas: 1
        resources:
          limits:
            cpu: "1"
            memory: 1Gi
          requests:
            cpu: 500m
            memory: 500Mi
        version: v3.6.0
      imagePullPolicy: IfNotPresent
      metad:
        dataVolumeClaim:
          resources:
            requests:
              storage: 2Gi
          storageClassName: fast-disks
        image: vesoft/nebula-metad
        logVolumeClaim:
          resources:
            requests:
              storage: 2Gi
          storageClassName: fast-disks
        replicas: 1
        resources:
          limits:
            cpu: "1"
            memory: 1Gi
          requests:
            cpu: 500m
            memory: 500Mi
        version: v3.6.0
      nodeSelector:
        nebula: cloud
      reference:
        name: statefulsets.apps
        version: v1
      schedulerName: default-scheduler
      storaged:
        dataVolumeClaims:
        - resources:
            requests:
              storage: 2Gi
          storageClassName: fast-disks
        - resources:
            requests:
              storage: 2Gi
          storageClassName: fast-disks
        image: vesoft/nebula-storaged
        logVolumeClaim:
          resources:
            requests:
              storage: 2Gi
          storageClassName: fast-disks
        replicas: 3
        resources:
          limits:
            cpu: "1"
            memory: 1Gi
          requests:
            cpu: 500m
            memory: 500Mi
        version: v3.6.0
    ...    
    
  3. 执行kubectl apply -f nebula_cluster.yaml使上述更新生效。

当集群删除后,系统将会自动删除 PVC 以回收存储资源。是否删除 PV,取决于 PV 的回收策略。


最后更新: November 7, 2023