【问题标题】:How to delete persistent volumes in Kubernetes如何在 Kubernetes 中删除持久卷
【发布时间】:2019-08-07 19:58:08
【问题描述】:

我正在尝试删除 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

但它显示:

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

但是命令没有退出。所以我CONTROL+C 强制退出命令。几分钟后,我跑了:

kubectl get pv

状态为Terminating,但卷似乎并未删除。

如何删除这些持久卷?

【问题讨论】:

  • 您使用哪个供应商?我认为该命令只是在等待您的配置程序删除该卷,看起来好像出了点问题。请提供来自 kubelet 的日志,如果您使用的是 kubernetes-csi,请提供来自 Provisioner 的日志。
  • 在我的情况下,诀窍不仅是删除“声明”,还删除相关的“持久卷”(因为我摆脱了相关的“服务”、“部署”,所以豆荚已经消失了ETC。)。感谢您的提问!

标签: kubernetes persistent-volumes


【解决方案1】:

不建议删除pv,应该由cloud provisioner处理。如果您需要删除 pv,只需删除绑定到声明的 pod,然后删除 pvc。之后,云供应商也应该删除 pv。

kubectl delete pvc --all 

有时可能需要一些时间,所以请耐心等待。

【讨论】:

  • pod 被删除。它们最初是由 Helm 图表创建的。我不认为当我执行helm delete 时它会删除 PV 卷。 PV 量仍显示Terminating,已超过 40 分钟。
  • 有一次我在 gke 上删除了 pv,kubernetes 花了一个多小时才弄清楚发生了什么。
  • @Justin helm delete 只删除pvc,取决于pv 的reclaim policy 来决定是保留还是删除
  • @FL3SH 请修正kubectl中的类型
【解决方案2】:

删除所有正在使用pvc的pod(你要删除),然后依次删除PVC(PersistentVolumeClaim)和PV(PersistentVolume)。

如下所示(按顺序):

  1. kubectl 删除 pod --all / pod-name
  2. kubectl 删除 pvc --all / pvc-name
  3. kubectl 删除 pv --all / pv-name

【讨论】:

  • 我错误地删除了我的 PV,当我试图获取特定命名空间中的所有 pv 时,它返回了我集群中的所有 pv。所以我以为是这个命名空间里的pv,所以我把这些pv都删了。但幸运的是,这些 PV 不会被上述规则删除。心情舒畅^^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-08
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多