kubernetes pod在被删除后继续重新启动

i86rm4rw  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(5)|浏览(230)

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

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

kubectl get deployments --all-namespaces

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

kubectl delete -n <NS> deployment <DEPLOY>

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

我还检查

kubectl get jobs --all-namespaces

但是没有找到资源。并且还

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

但我不认为其中一个与Kafka的部署有关。
我还可以尝试什么来移除这些豆荚?欢迎任何帮助。

1yjd4xko

1yjd4xko1#

那一定是一个很好的组合
但是看看这个链接,你可能会在terraform中使用这样的东西:https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/stateful_set

kubectl get statefulset -n you-namespace
6ojccjat

6ojccjat2#

你可以通过杀死Pod相关的服务来实现这一点。

  • 获取服务入口点的名称:

kubectl get svc

  • 删除服务:

kubectl delete svc
入口点可以是您在该pod的YAML文件中定义的任何内容

jqjz2hbq

jqjz2hbq3#

好吧,我找到了根本原因。
有:

kubectl get all --all-namespaces

我查了所有与豆荚名字有关的东西。在这个过程中,我发现了相关的服务。在我删除这些服务后,Pod没有再次重新创建。
我仍然认为这不是一个很好的解决问题的办法(“只要删除所有具有相同名称的”.),我会很高兴,如果有人能提出一个更好的解决方案来解决这个问题。

pgccezyw

pgccezyw4#

对我来说,它们看起来像一个statefulset,你也尝试了以下命令吗?

kubectl get statefulset --all-namespaces
zlhcx6iw

zlhcx6iw5#

它真的像一个statefulset,谁控制了pods
StatefulSet中的Pod具有粘性的唯一标识。此标识基于由StatefulSet控制器分配给每个Pod的唯一序号索引。Pod的名称采用“-“的形式。
尝试kubectl get statefulset --all-namespaces

相关问题