我想删除使用helm install
部署到群集的Pod。
我用了3种方法来做到这一点:
helm uninstall <release name>
-〉从群集和helm列表中删除Podhelm delete <release name>
-〉从群集和helm列表中删除Podkubectl delete -n <namespace> deploy <deployment name>
-〉从集群中删除Pod,但不从helm列表中删除
它们之间的区别是什么?是一种练习比另一种练习更好吗?
我想删除使用helm install
部署到群集的Pod。
我用了3种方法来做到这一点:
helm uninstall <release name>
-〉从群集和helm列表中删除Podhelm delete <release name>
-〉从群集和helm列表中删除Podkubectl delete -n <namespace> deploy <deployment name>
-〉从集群中删除Pod,但不从helm列表中删除
3条答案
按热度按时间b1zrtrql1#
helm delete
是helm uninstall
的别名,检查--help
语法时可以看到这一点:kubectl delete ...
只是删除群集中的资源。执行
helm uninstall ...
不仅会删除pod,还会删除helm安装图表时创建的所有资源,对于单个pod,这可能与使用kubectl delete...
没有任何区别,但当您有数十或数百个不同的资源和相关图表时,通过执行kubectl delete...
手动完成所有这些操作会变得繁琐、耗时且容易出错。一般来说,如果你要从集群中删除某个东西,使用你最初安装它的方法。如果你使用helm将它安装到集群中,使用helm删除它。如果你使用
kubectl create
或kubectl apply
,使用kubectl delete
删除它。ffdz8vbo2#
我将添加一个我们经常使用的点。
helm uninstall/install/upgrade
在它的生命周期中附加了 * hook *。这很重要,这里是一个小例子。我们有一些数据库脚本作为a job的一部分运行。假设您准备了一个版本为
1.2.3
的发行版,并且作为该发行版的一部分,您在表中添加了一列-您有一个用于该列的脚本(liquibase/flyway等),该脚本将在图表安装时自动运行。在这种情况下,helm install
允许您说:“在安装代码之前,升级DB模式”。这太棒了,可以让你把这样的脚本的生命周期和图表的生命周期联系起来。这同样适用于降级,您可以说,当您降级时,恢复模式,或采取任何必要的操作。
kubectl delete
根本不具有这样的功能。brtdzjyr3#
对我来说是一样的:
uninstall, del, delete, and un
用于舵(检查别名):