Helm 删除发布并清除关联存储

Car*_*ine 9 kubernetes kubernetes-helm

我通过以下方式安装了掌舵版本

helm install --name my-release .
Run Code Online (Sandbox Code Playgroud)

并删除它

helm delete --purge my-release
Run Code Online (Sandbox Code Playgroud)

但我发现 kubernetes 不会清除与该版本的容器相关的任何存储。我安装了postgresql,对它做了很多事情,删除了,当我重新安装它时,我所有的数据都在那里。如何通过 helm delete 清除存储?

编辑:我使用的是Postgresql 稳定图表版本5.3.10

这是我发布的唯一自定义内容

值.yaml

postgresql:
  postgresqlDatabase: test
  postgresqlUsername: test
  postgresqlPassword: test
Run Code Online (Sandbox Code Playgroud)

Anj*_*yna 5

查看helm图表文件:https : //github.com/helm/charts/blob/master/stable/postgresql/templates/statefulset.yaml

很明显,如果你没有.Values.persistence.existingClaim在 values.yaml 中指定 for 的值,它会自动创建一个持久卷声明。

  • 如果您为.Values.persistence.storageClass创建的 pvc设置了存储类,则将使用该类来配置卷。
  • 如果将存储类别设置为“-”,则将禁用动态配置。
  • 如果您没有为 指定任何内容.Values.persistence.storageClass,则自动创建的 pvc 将不会指定存储类字段。

由于您使用的是图表的默认 values.yaml,因此您有第三种情况。

在 kubernetes 中,如果您没有在持久卷声明中指定存储类,它将使用集群的默认存储类来配置卷。

检查哪个是您的集群的存储类:

kubectl get sc 
Run Code Online (Sandbox Code Playgroud)

默认的 StorageClass 将被标记(default)。描述该存储类并找到它的Reclaim Policy.

如果 Reclaim Policy 是Delete,它创建的 pv 将在其声明被删除时自动删除(在您的情况下,当图表被卸载时)。

如果默认存储类的回收策略不是 Delete,则必须使用 Delete 策略创建自己的存储类,然后进一步使用它。