【问题标题】:What's the difference between helm uninstall, helm delete and kubectl deletehelm uninstall、helm delete 和 kubectl delete 有什么区别
【发布时间】:2023-02-20 16:28:43
【问题描述】:

我想删除我使用 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 列表中删除

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

【问题讨论】:

    标签: kubernetes kubernetes-helm kubectl


    【解决方案1】:

    helm delete 是helm 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 create 或kubectl apply,请使用kubectl delete 将其删除。

    【讨论】:

      【解决方案2】:

      我将添加一个我们使用的点,相当多。 helm uninstall/install/upgrade有挂钩附加到它的生命周期。这很重要,这里有一个小例子。

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

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

      【讨论】:

        【解决方案3】:

        对我来说,这是同一件事:uninstall, del, delete, and un 掌舵(检查别名):

        $ helm del --help
        
        此命令采用版本名称并卸载该版本。
        
        它删除与图表的最后一个版本关联的所有资源
        以及发布历史,释放它以供将来使用。
        
        使用“--dry-run”标志查看哪些版本将被卸载而不实际
        卸载它们。
        
        用法:
          helm uninstall RELEASE_NAME [...] [标志]
        
        别名:
          uninstall, del, 删除, un

        【讨论】:

        【解决方案4】:

        Helm delete 是较旧的命令,现在已被 helm uninstall 取代。该命令基本上卸载了之前使用 helm install/upgrade 部署的 helm chart 中的所有资源。

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

        【讨论】:

          猜你喜欢
          • 2019-01-06
          • 2020-06-16
          • 1970-01-01
          • 2010-11-25
          • 2023-03-30
          • 2010-09-13
          • 1970-01-01
          • 1970-01-01
          • 2014-04-15
          相关资源
          最近更新 更多