删除命名空间并删除 Helm 部署

red*_*888 7 kubernetes google-kubernetes-engine kubectl kubernetes-helm

我将 Helm 部署到隔离的命名空间。

删除命名空间会删除其中的所有资源 - 除了 Helm 部署。

删除 Helm 部署会删除其中的所有资源 - 除命名空间之外。

我必须这样做,这似乎是多余的:

helm del `helm ls NAMESPACE --short` --purge
kubectl delete namespace NAMESPACE
Run Code Online (Sandbox Code Playgroud)

我宁愿删除我的命名空间并清除 Helm 部署 - 这可能吗?

Ami*_*pta 6

删除命名空间会删除其中的所有资源 - 除了 helm 部署

这是不可能的(删除命名空间意味着删除其中的所有内容,没有任何例外),并且必须意味着代表 Helm 部署概念的状态不存在于该命名空间中。Helm 将这些作为配置映射存储在TILLER_NAMESPACE. 请参阅此处此处

毫不奇怪,如果您使用 创建一些资源,helm然后进入“幕后”并直接通过 删除这些资源kubectl,Helm 的世界状态不会导致该部署消失。

删除 helm 部署会删除其中的所有资源 - 除了命名空间

这听起来像是预期的行为。推测您是使用带外创建的命名空间kubectl,它不是 Helm 部署的一部分。因此,删除 Helm 部署不会删除该命名空间。

如果您kubectl create namespace NS需要helm install CHART --namespace NS清理,那么您需要helm delete发布,然后是kubectl delete命名空间,这并不奇怪。

我能想到的唯一方法是让 Helm 图表本身创建一个命名空间并在该命名空间内创建所有后续命名空间范围的资源。是一个似乎执行此类操作的示例。