【问题标题】:kubernetes pod keeps restarting after it was deletedkubernetes pod被删除后不断重启
【发布时间】:2021-10-19 15:30:10
【问题描述】:

我有一组 Kubernetes pod (Kafka)。它们是由 Terraform 创建的,但不知何故,它们“掉”出了状态(Terraform 无法识别它们)并且配置错误(反正我不再需要它们了)。

我现在想从集群中完全删除 pod。主要问题是,即使在我杀死/删除它们之后,它们也会继续被重新创建/重新启动。

我试过了:

kubectl get deployments --all-namespaces

然后删除 pod 所在的命名空间

kubectl delete -n <NS> deployment <DEPLOY>

此命名空间已正确删除。尽管如此,如果我现在尝试移除/杀死 pod(强制和级联)它们仍然会重新出现。在事件中,我可以看到它们是由 kubelet 重新创建的,但我不知道为什么也不知道如何阻止这种行为。

我也查了

kubectl get jobs --all-namespaces

但是没有找到资源。还有

kubectl get daemonsets.app --all-namespaces
kubectl get daemonsets.extensions --all-namespaces

但我认为其中之一与 Kafka 部署完全无关。

我还能尝试删除这些 pod 吗?欢迎任何帮助。

【问题讨论】:

    标签: kubernetes kubectl restart


    【解决方案1】:

    真的很像statefulset,控制着pods

    StatefulSet 中的 Pod 具有粘性、唯一的身份。此标识基于 StatefulSet 控制器分配给每个 Pod 的唯一序号索引。 Pod 的名称采用“-”的形式。

    所以,试试kubectl get statefulset --all-namespaces

    【讨论】:

      【解决方案2】:

      好的,我找到了根本原因。

      与:

      kubectl get all --all-namespaces
      

      我查找了与 pod 名称相关的所有内容。在这个原因中,我找到了相关的服务。在我删除这些服务后,这些 pod 没有重新创建。

      我仍然认为这不是解决问题的好方法(“只需删除具有相同名称的所有内容”......),如果有人能提出更好的解决方案来解决这个问题,我会很高兴。

      【讨论】:

        【解决方案3】:

        在我看来,它们看起来像一个有状态集,您是否也尝试过以下命令?

        kubectl get statefulset --all-namespaces
        

        【讨论】:

          【解决方案4】:

          必须是有状态集

          但请查看此链接,您可能在 terraform 中使用过类似的东西:https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/stateful_set

          kubectl get statefulset -n you-namespace
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-09-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-02-11
            • 2019-11-14
            • 2016-08-22
            • 2019-04-13
            相关资源
            最近更新 更多