Jus*_*tin 25 kubernetes persistent-volumes
我正在尝试删除 Kubernetes 集群上的持久卷。我运行了以下命令:
kubectl delete pv pvc-08e65270-b7ce-11e9-ba0b-0a1e280502e2 pvc-08e87826-b7ce-11e9-ba0b-0a1e280502e2 pvc-08ea5f97-b7ce-11e9-ba0b-0a1e280502e2 pvc-08ec1cac-b7ce-11e9-ba0b-0a1e280502e2
Run Code Online (Sandbox Code Playgroud)
然而它显示:
persistentvolume "pvc-08e65270-b7ce-11e9-ba0b-0a1e280502e2" deleted
persistentvolume "pvc-08e87826-b7ce-11e9-ba0b-0a1e280502e2" deleted
persistentvolume "pvc-08ea5f97-b7ce-11e9-ba0b-0a1e280502e2" deleted
persistentvolume "pvc-08ec1cac-b7ce-11e9-ba0b-0a1e280502e2" deleted
Run Code Online (Sandbox Code Playgroud)
但是命令没有退出。所以我CONTROL+C强制退出命令。几分钟后,我跑了:
kubectl get pv
Run Code Online (Sandbox Code Playgroud)
状态为Terminating,但卷似乎没有删除。
如何删除这些持久卷?
sha*_*359 35
我创建了下图来帮助更好地解释这一点。
本线程中的其他答案提到了 Kubectl 命令。同样应该有效。
kubectl delete sts sts-name
kubectl delete pvc pvc-name
kubectl delete pv pv-name
Run Code Online (Sandbox Code Playgroud)
一些更有用的信息
如果您看到某些内容陷入终止状态,那是因为 k8s 设置了护栏。这些被称为“终结器”。
如果您的 PV 在删除后停留在终止状态,可能是因为您在删除 PVC 之前已删除了 PV。
如果您的 PVC 在删除后陷入终止状态,可能是因为您的 pod 仍在运行。(在这种情况下只需删除 pod/statefulset)
如果您希望删除处于终止状态的资源,请使用以下命令绕过 pvc、pv 保护终结器。
kubectl patch pvc pvc_name -p '{"metadata":{"finalizers":null}}'
kubectl patch pv pv_name -p '{"metadata":{"finalizers":null}}'
这是有关PVC 保留策略的文档。
这是有关光伏回收政策的文档。
FL3*_*3SH 29
不建议删除 pv 应该由 cloud provisioner 处理。如果您需要删除 pv,只需删除绑定到声明的 pod,然后删除 pvc。在那之后,云供应商也应该删除 pv。
kubectl delete pvc --all
Run Code Online (Sandbox Code Playgroud)
有时可能需要一些时间,所以请耐心等待。
小智 12
删除所有使用pvc(要删除)的pod,然后依次删除PVC(PersistentVolumeClaim) & PV(PersistentVolume)。
像下面这样的东西(按顺序):
PV是管理员配置的集群资源,而PVC是用户对存储和资源的请求。我猜你还部署了相应的PVC。
删除部署。例如:
kubectl delete deployment mongo-db
Run Code Online (Sandbox Code Playgroud)
列出持久卷声明。例如:
kubectl get pvc
Run Code Online (Sandbox Code Playgroud)
删除对应的pcv。例如:
kubectl delete pvc mongo-db
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27698 次 |
| 最近记录: |