lio*_*r.i 12 kubernetes kubectl kubernetes-helm
我想删除使用 部署到集群的 pod helm install
。
我使用了 3 种方法来做到这一点:
helm uninstall <release name>
-> 从集群和 Helm 列表中删除 podhelm delete <release name>
-> 从集群和 Helm 列表中删除 podkubectl delete -n <namespace> deploy <deployment name>
-> 从集群中删除 pod,但不从 helm 列表中删除他们之间有什么区别?一种做法比另一种更好吗?
Ble*_*Fox 25
helm delete
是一个别名helm uninstall
,当你检查语法时你可以看到这一点--help
:
$ helm delete --help
...
Usage:
helm uninstall RELEASE_NAME [...] [flags]
Run Code Online (Sandbox Code Playgroud)
kubectl delete ...
只是删除集群中的资源。
这样做helm uninstall ...
不仅会删除 pod,还会删除 helm 在安装图表时创建的所有资源。对于单个 Pod,这可能与使用没有任何不同kubectl delete...
,但是当您有数十或数百个不同的资源和依赖图表时,手动完成所有这些操作kubectl delete...
会变得麻烦、耗时且容易出错。
一般来说,如果您要从集群中删除某些内容,请使用与最初安装它相同的方法。也就是说,如果您使用helm install
或helm upgrade --install
将其安装到集群中,请使用helm uninstall
将其删除(或者helm delete --purge
如果您仍在运行 Helm v2);如果您使用了kubectl create
或kubectl apply
,请使用kubectl delete
将其删除。
我会添加一个我们经常使用的点。其生命周期helm uninstall/install/upgrade
有附加的钩子。这很重要,这是一个小例子。
我们有作为作业的一部分运行的数据库脚本。假设您准备了一个带有版本的版本1.2.3
,并且作为该版本的一部分,您在表中添加了一列 - 您有一个脚本(liquibase/flyway 等),该脚本将在安装图表时自动运行。在这种情况下,用简单的英语helm install
可以说:“在安装代码之前,升级数据库架构”。这太棒了,它允许您将此类脚本的生命周期与图表的生命周期联系起来。
这同样适用于降级,您可以说当您降级、恢复架构或采取任何所需的操作时。kubectl delete
根本不具备这样的功能。
归档时间: |
|
查看次数: |
30967 次 |
最近记录: |