kubernetes helm卸载、helm删除和kubectl删除之间有什么区别

bgibtngc  于 2023-01-12  发布在  Kubernetes
关注(0)|答案(3)|浏览(1022)

我想删除使用helm install部署到群集的Pod。
我用了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列表中删除
    它们之间的区别是什么?是一种练习比另一种练习更好吗?
b1zrtrql

b1zrtrql1#

helm deletehelm uninstall的别名,检查--help语法时可以看到这一点:

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

kubectl delete ...只是删除群集中的资源。
执行helm uninstall ...不仅会删除pod,还会删除helm安装图表时创建的所有资源,对于单个pod,这可能与使用kubectl delete...没有任何区别,但当您有数十或数百个不同的资源和相关图表时,通过执行kubectl delete...手动完成所有这些操作会变得繁琐、耗时且容易出错。
一般来说,如果你要从集群中删除某个东西,使用你最初安装它的方法。如果你使用helm将它安装到集群中,使用helm删除它。如果你使用kubectl createkubectl apply,使用kubectl delete删除它。

ffdz8vbo

ffdz8vbo2#

我将添加一个我们经常使用的点。helm uninstall/install/upgrade在它的生命周期中附加了 * hook *。这很重要,这里是一个小例子。
我们有一些数据库脚本作为a job的一部分运行。假设您准备了一个版本为1.2.3的发行版,并且作为该发行版的一部分,您在表中添加了一列-您有一个用于该列的脚本(liquibase/flyway等),该脚本将在图表安装时自动运行。在这种情况下,helm install允许您说:“在安装代码之前,升级DB模式”。这太棒了,可以让你把这样的脚本的生命周期和图表的生命周期联系起来。
这同样适用于降级,您可以说,当您降级时,恢复模式,或采取任何必要的操作。kubectl delete根本不具有这样的功能。

brtdzjyr

brtdzjyr3#

对我来说是一样的: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

相关问题