helm uninstall、helm delete 和 kubectl delete 有什么区别

What's the difference between helm uninstall, helm delete and kubectl delete

提问人:lior.i 提问时间:2/22/2022 更新时间:2/26/2023 访问量:26649

问:

我想删除我使用 部署到集群的 pod。helm install

我使用了 3 种方法来做到这一点:

  1. helm uninstall <release name>-> 从集群和 helm 列表中删除 pod
  2. helm delete <release name>-> 从集群和 helm 列表中删除 pod
  3. kubectl delete -n <namespace> deploy <deployment name>-> 从集群中删除 pod,但不从 helm 列表中删除 pod

它们之间有什么区别? 一种做法比另一种做法更好吗?

kubernetes-helm kubectl

评论


答:

22赞 Blender Fox 2/22/2022 #1

helm delete是别名,您可以在检查语法时看到这一点:helm uninstall--help

$ helm delete --help
...
Usage:
  helm uninstall RELEASE_NAME [...] [flags]

kubectl delete ...只是删除群集中的资源。

这样做不仅会删除 pod,还会删除 helm 在安装图表时创建的所有资源。对于单个 Pod,这可能与使用没有什么不同,但是当您拥有数十或数百个不同的资源和依赖图表时,手动执行所有这些操作会变得繁琐、耗时且容易出错。helm uninstall ... kubectl delete...kubectl delete...

通常,如果要从群集中删除某些内容,请使用最初安装时使用的相同方法。也就是说,如果您使用或将其安装到集群中,请使用将其删除(或者如果您仍在运行 Helm v2);如果使用 或 ,则用于删除它。helm installhelm upgrade --installhelm uninstallhelm delete --purgekubectl createkubectl applykubectl delete

5赞 Eugene 2/23/2022 #2

我要补充一点,我们经常使用。 在其生命周期中附加了钩子。这很重要,这里有一个小例子。helm uninstall/install/upgrade

我们有作为作业的一部分运行的数据库脚本。假设您准备了一个带有版本的版本,作为该版本的一部分,您在表中添加了一列 - 您有一个脚本(liquibase/flyway 等),该脚本将在安装图表时自动运行。在这种情况下,用通俗易懂的英语可以说:“在安装代码之前,请升级数据库模式”。这真是太棒了,它允许您将此类脚本的生命周期与图表的生命周期联系起来。1.2.3helm install

这同样适用于降级,您可以说,当您降级、还原架构或采取任何必要的操作时。 根本没有这样的功能。kubectl delete

2赞 Bruno Penha 1/11/2023 #3

对我来说,这是一回事:对于舵手(检查别名):uninstall, del, delete, and un

$ helm del --help

This command takes a release name and uninstalls the release.

It removes all of the resources associated with the last release of the chart
as well as the release history, freeing it up for future use.

Use the '--dry-run' flag to see which releases will be uninstalled without actually
uninstalling them.

Usage:
  helm uninstall RELEASE_NAME [...] [flags]

Aliases:
  uninstall, del, delete, un

评论

2赞 lior.i 1/11/2023
看到第一个答案:stackoverflow.com/questions/71222072/......
0赞 Shrikrishna C 2/20/2023 #4

helm delete是较旧的命令,现在已替换为 。这个命令基本上卸载了 helm chart 中的所有资源,这些资源之前是使用 helm install/upgrade 部署的。helm uninstall

kubectl delete将仅删除资源,如果它是由 helm chart 部署的,它将再次重新部署。因此,如果您想重新部署 pod 或删除资源(如果未使用 helm chart 方法部署资源),这些命令非常有用。