我有一套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的部署有关。
我还可以尝试什么来移除这些豆荚?欢迎任何帮助。
5条答案
按热度按时间1yjd4xko1#
那一定是一个很好的组合
但是看看这个链接,你可能会在terraform中使用这样的东西:https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/stateful_set
6ojccjat2#
你可以通过杀死Pod相关的服务来实现这一点。
kubectl get svc
kubectl delete svc
入口点可以是您在该pod的YAML文件中定义的任何内容
jqjz2hbq3#
好吧,我找到了根本原因。
有:
我查了所有与豆荚名字有关的东西。在这个过程中,我发现了相关的服务。在我删除这些服务后,Pod没有再次重新创建。
我仍然认为这不是一个很好的解决问题的办法(“只要删除所有具有相同名称的”.),我会很高兴,如果有人能提出一个更好的解决方案来解决这个问题。
pgccezyw4#
对我来说,它们看起来像一个statefulset,你也尝试了以下命令吗?
zlhcx6iw5#
它真的像一个
statefulset
,谁控制了pods
StatefulSet中的Pod具有粘性的唯一标识。此标识基于由StatefulSet控制器分配给每个Pod的唯一序号索引。Pod的名称采用“-“的形式。
尝试
kubectl get statefulset --all-namespaces