回收 PV¶
NebulaGraph Operator 使用持久化卷 PV(Persistent Volume)和持久化卷声明 PVC(Persistent Volume Claim)来存储持久化数据。如果用户不小心删除了一个NebulaGraph集群,默认 PV 和 PVC 对象及其数据仍可保留,以确保数据安全。
用户也可以在集群实例的配置文件中通过设置参数spec.enablePVReclaim
为true
来定义在删除集群后自动删除 PVC 以释放数据。至于在删除 PVC 后是否删除 PV,用户需要自定义 PV 的回收策略。参见 StorageClass 中设置 reclaimPolicy 和 PV Reclaiming 了解 PV 回收策略。
前提条件¶
已使用 K8s 创建一个集群。具体步骤,参见使用 Kubectl 创建NebulaGraph集群。
注意事项¶
不支持在集群运行时动态增加或挂载 PV。
操作步骤¶
以下示例使用名为nebula
的集群、名为nebula_cluster.yaml
的 YAML 配置文件,说明如何设置enablePVReclaim
:
-
执行以下命令进入
nebula
集群的编辑页面。kubectl edit nebulaclusters.apps.nebula-graph.io nebula
-
在 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 ...
-
执行
kubectl apply -f nebula_cluster.yaml
使上述更新生效。
当集群删除后,系统将会自动删除 PVC 以回收存储资源。是否删除 PV,取决于 PV 的回收策略。
最后更新:
November 7, 2023