3

我在 docker-desktop 上创建了一个 PV 和一个 PVC,即使在删除 pv 和 pvc 之后,文件仍然存在。当我重新创建它时,它会将相同的 mysql 数据库附加到新的 pod。如何手动删除 hostPath 创建的文件?我想一种方法是在首选项中重置 Kubernetes,但必须有另一种不那么核的选项。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 20Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  hostPath:
    path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pv-claim2
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
4

3 回答 3

4

根据文档,“......Recycle回收策略对卷执行基本清理 ( rm -rf /thevolume/*) 并使其再次可用于新的声明”。另外,“...目前,只有 NFS 和 HostPath 支持回收”。所以,尝试改变

persistentVolumeReclaimPolicy: Delete

persistentVolumeReclaimPolicy: Recycle
于 2019-09-21T22:35:04.983 回答
3

hostPath卷只是节点文件系统之一上的文件夹(在这种情况下/mnt/data)。您需要做的就是从托管卷的节点中删除该文件夹。

于 2019-09-20T23:20:25.267 回答
1

如果您为需要检查的 pod 定义了任何节点关联性。然后找出该 pod 所在的节点。删除然后从 /mnt/data 目录中删除数据PVCPV

kubectl get pod -o wide | grep <pod_name>

在这里,您将了解它被安排在哪个节点上。

kubectl delete deploy or statefulset <deploy_name>

kubectl get pv,pvc

kubectl delete pv <pv_name>

kubectl delete pvc <pvc_name>

现在继续该节点并从中删除该数据/mnt/data

另一种方法可以定义persistentVolumeReclaimPolicyretaindelete

于 2019-09-23T07:23:06.907 回答