删除版本并清除关联的存储空间

时间:2019-06-26 08:37:18

标签: kubernetes kubernetes-helm

我通过以下方式安装头盔版本

helm install --name my-release .

并通过

将其删除
helm delete --purge my-release

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

编辑:我正在使用Postgresql Stable Chart5.3.10

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

values.yaml

postgresql:
  postgresqlDatabase: test
  postgresqlUsername: test
  postgresqlPassword: test

2 个答案:

答案 0 :(得分:2)

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

很明显,如果您未在values.yaml中指定public class LgItemProcessor<LgBulkLine, LGInfo> implements ItemProcessor<LgBulkLine, LGInfo> { private static final Log log = LogFactory.getLog(LgItemProcessor.class); @SuppressWarnings("unchecked") @Override public LGInfo process(LgBulkLine item) throws Exception { log.info(item); return (LGInfo) Intializer.initializeEntity(); } } 的值,它将自动创建一个持久的批量声明。

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

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

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

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

.Values.persistence.storageClass

默认StorageClass将用kubectl get sc 标记。 描述该存储类并找到它的(default)

如果将回收策略删除,则删除该索赔所创建的PV(在您的情况下,将图表卸载)会自动删除。

如果默认存储类的回收策略不是删除,则必须使用“删除”策略创建自己的存储类,然后再使用它。

答案 1 :(得分:0)

如果您查看 default values.yaml here 中的默认值:

persistence:
  enabled: true

通过将其设置为false,我们可以禁用持久性,以便卸载 helm 版本后,数据不会持久化。

为此,请创建您自己的值文件,其中包含以下内容:

persistence:
  enabled: false

#Sample command
helm install myrelease --values values-override.yaml bitnami/postgresql