有状态的es-data集在我们的测试环境中失败了,我被要求删除相应的PV。因此,我删除了es-data的以下内容:1)PVC 2)PV他们显示为终止,并留到周末。今天早上到达时,他们仍然显示为终止,所以强行删除了PVC和PV。没有乐趣。为了解决整个问题,我不得不删除有状态集。如果您想删除PV,这是否正确?
s4chpxco1#
您可以使用以下两个命令删除PV:
kubectl delete pv <pv_name> --grace-period=0 --force
然后使用以下命令删除终结器:
kubectl patch pv <pv_name> -p '{"metadata": {"finalizers": null}}'
e5nqia272#
如果我先删除pvc,然后删除pv,这对我很有效
kubectl delete pvc data-p-0 kubectl delete pv <pv-name> --grace-period=0 --force
假设一个人想删除的PVC以及,似乎挂否则
4sup72z83#
首先运行kubectl patch pv {PVC_NAME} -p '{"metadata":{"finalizers":null}}'然后运行kubectl delete pv {PVC_NAME}
kubectl patch pv {PVC_NAME} -p '{"metadata":{"finalizers":null}}'
kubectl delete pv {PVC_NAME}
am46iovg4#
在开始时,请确保您的Reclaim Policy设置为Delete。在删除PVC之后,应删除PV。https://kubernetes.io/docs/concepts/storage/persistent-volumes/#reclaiming如果没有帮助,请查看这个[已关闭] Kubernetes PV问题:https://github.com/kubernetes/kubernetes/issues/69697并尝试删除PV终结器。
Reclaim Policy
Delete
ecbunoof5#
这个线程上的大多数答案只是提到了命令,而没有解释根本原因。这里有一个图表来帮助更好地理解。请参考我的其他答案以获得命令和其他信息-〉https://stackoverflow.com/a/73534207/6563567。
此图显示如何清理删除卷x1c 0d1x
在你的例子中,PVC和PV由于终结器而停留在终止状态。终结器是k8中的护栏,以避免意外删除资源。您的观察是正确的,这就是Kubernetes的工作方式。但是您删除资源的顺序不正确。
事情就是这样
由于PVC仍然存在,PV被卡住终止。PVC被卡住终止,因为Statefulsets(pod)仍在使用卷。(卷连接到节点并装载到pod)。一旦删除pod/STS,由于卷不再使用,PVC和PV被成功删除。
a9wyjsp76#
提示:PV卷可能描述为pvc-name-of-volume,这可能会造成混淆!
pvc-name-of-volume
Persistent Volume
Persistent Volume Clame
1.首先找到pvs:kubectl get pv -n {namespace}1.然后删除pv,以便将状态设置为Terminatingkubectl delete pv {PV_NAME}1.然后打补丁将pvc的状态设置为Lost:kubectl patch pv {PV_NAME} -p '{"metadata":{"finalizers":null}}'1.然后获取PVC卷:kubectl get pvc -n storage1.然后删除pvc:kubectl delete pvc {PVC_NAME} -n {namespace}
kubectl get pv -n {namespace}
Terminating
kubectl delete pv {PV_NAME}
Lost
kubectl patch pv {PV_NAME} -p '{"metadata":{"finalizers":null}}'
kubectl get pvc -n storage
kubectl delete pvc {PVC_NAME} -n {namespace}
**假设我们在storage namespace中安装了Kafka
storage namespace
x1米11米1x$ kubectl delete pv pvc-ccdfe297-44c9-4ca7-b44c-415720f428d1$ kubectl get pv -n storage(挂起但将pv状态变为终止)$ kubectl patch pv pvc-ccdfe297-44c9-4ca7-b44c-415720f428d1 -p '{"metadata":{"finalizers":null}}'$ kubectl get pvc -n storagekubectl delete pvc data-kafka-0 -n storage
$ kubectl delete pv pvc-ccdfe297-44c9-4ca7-b44c-415720f428d1
$ kubectl get pv -n storage
$ kubectl patch pv pvc-ccdfe297-44c9-4ca7-b44c-415720f428d1 -p '{"metadata":{"finalizers":null}}'
$ kubectl get pvc -n storage
kubectl delete pvc data-kafka-0 -n storage
3phpmpom7#
kubectl delete pv [pv-name]ksu你必须检查有关政策的光伏它不应该是回收政策。
camsedfj8#
对我来说,我遵循了这个方法,它对我很有效。
kubectl delete pv {your-pv-name} --grace-period=0 --force
然后编辑pvc配置。
kubectl edit pvc {your-pvc-name}
并从PVC配置中删除终结器。
finalizers: - kubernetes.io/pv-protection
你可以在kubernetes官方指南中阅读更多关于finalizer的内容。https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#finalizers
8条答案
按热度按时间s4chpxco1#
您可以使用以下两个命令删除PV:
然后使用以下命令删除终结器:
e5nqia272#
如果我先删除pvc,然后删除pv,这对我很有效
假设一个人想删除的PVC以及,似乎挂否则
4sup72z83#
首先运行
kubectl patch pv {PVC_NAME} -p '{"metadata":{"finalizers":null}}'
然后运行
kubectl delete pv {PVC_NAME}
am46iovg4#
在开始时,请确保您的
Reclaim Policy
设置为Delete
。在删除PVC之后,应删除PV。https://kubernetes.io/docs/concepts/storage/persistent-volumes/#reclaiming
如果没有帮助,请查看这个[已关闭] Kubernetes PV问题:https://github.com/kubernetes/kubernetes/issues/69697
并尝试删除PV终结器。
ecbunoof5#
这个线程上的大多数答案只是提到了命令,而没有解释根本原因。
这里有一个图表来帮助更好地理解。请参考我的其他答案以获得命令和其他信息-〉https://stackoverflow.com/a/73534207/6563567。
此图显示如何清理删除卷x1c 0d1x
在你的例子中,PVC和PV由于终结器而停留在终止状态。终结器是k8中的护栏,以避免意外删除资源。
您的观察是正确的,这就是Kubernetes的工作方式。但是您删除资源的顺序不正确。
事情就是这样
由于PVC仍然存在,PV被卡住终止。PVC被卡住终止,因为Statefulsets(pod)仍在使用卷。(卷连接到节点并装载到pod)。一旦删除pod/STS,由于卷不再使用,PVC和PV被成功删除。
a9wyjsp76#
提示:PV卷可能描述为
pvc-name-of-volume
,这可能会造成混淆!Persistent Volume
Persistent Volume Clame
1.首先找到pvs:
kubectl get pv -n {namespace}
1.然后删除pv,以便将状态设置为
Terminating
kubectl delete pv {PV_NAME}
1.然后打补丁将pvc的状态设置为
Lost
:kubectl patch pv {PV_NAME} -p '{"metadata":{"finalizers":null}}'
1.然后获取PVC卷:
kubectl get pvc -n storage
1.然后删除pvc:
kubectl delete pvc {PVC_NAME} -n {namespace}
理论示例:
**假设我们在
storage namespace
中安装了Kafkax1米11米1x
$ kubectl delete pv pvc-ccdfe297-44c9-4ca7-b44c-415720f428d1
$ kubectl get pv -n storage
(挂起但将pv状态变为终止)$ kubectl patch pv pvc-ccdfe297-44c9-4ca7-b44c-415720f428d1 -p '{"metadata":{"finalizers":null}}'
$ kubectl get pvc -n storage
kubectl delete pvc data-kafka-0 -n storage
3phpmpom7#
kubectl delete pv [pv-name]
ksu你必须检查有关政策的光伏它不应该是回收政策。
camsedfj8#
对我来说,我遵循了这个方法,它对我很有效。
然后编辑pvc配置。
并从PVC配置中删除终结器。
你可以在kubernetes官方指南中阅读更多关于finalizer的内容。
https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#finalizers