提问人:lior.i 提问时间:2/22/2022 更新时间:2/26/2023 访问量:26649
helm uninstall、helm delete 和 kubectl delete 有什么区别
What's the difference between helm uninstall, helm delete and kubectl delete
问:
我想删除我使用 部署到集群的 pod。helm install
我使用了 3 种方法来做到这一点:
helm uninstall <release name>
-> 从集群和 helm 列表中删除 podhelm delete <release name>
-> 从集群和 helm 列表中删除 podkubectl delete -n <namespace> deploy <deployment name>
-> 从集群中删除 pod,但不从 helm 列表中删除 pod
它们之间有什么区别? 一种做法比另一种做法更好吗?
答:
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 install
helm upgrade --install
helm uninstall
helm delete --purge
kubectl create
kubectl apply
kubectl delete
我要补充一点,我们经常使用。 在其生命周期中附加了钩子。这很重要,这里有一个小例子。helm uninstall/install/upgrade
我们有作为作业的一部分运行的数据库脚本。假设您准备了一个带有版本的版本,作为该版本的一部分,您在表中添加了一列 - 您有一个脚本(liquibase/flyway 等),该脚本将在安装图表时自动运行。在这种情况下,用通俗易懂的英语可以说:“在安装代码之前,请升级数据库模式”。这真是太棒了,它允许您将此类脚本的生命周期与图表的生命周期联系起来。1.2.3
helm install
这同样适用于降级,您可以说,当您降级、还原架构或采取任何必要的操作时。 根本没有这样的功能。kubectl delete
对我来说,这是一回事:对于舵手(检查别名):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
评论
helm delete
是较旧的命令,现在已替换为 。这个命令基本上卸载了 helm chart 中的所有资源,这些资源之前是使用 helm install/upgrade 部署的。helm uninstall
kubectl delete
将仅删除资源,如果它是由 helm chart 部署的,它将再次重新部署。因此,如果您想重新部署 pod 或删除资源(如果未使用 helm chart 方法部署资源),这些命令非常有用。
评论