我有一套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吗?欢迎任何帮助。
发布于 2021-10-20 00:18:30
这真的很像statefulset
,他们控制着pods
StatefulSet中的Pod有一个粘性的、唯一的标识。此标识基于由StatefulSet控制器分配给每个Pod的唯一序号索引。Pod的名称采用"-“的形式。
所以,试试kubectl get statefulset --all-namespaces
吧
发布于 2021-10-19 16:47:28
好吧,我找到了根本原因。
通过以下方式:
kubectl get all --all-namespaces
我查找了所有与pods名称相关的内容。在这个原因中,我找到了相关的服务。在我删除这些服务之后,pod没有再次被重新创建。
我仍然认为这不是解决问题的好办法(“删除所有同名的东西”……)如果有人能提出更好的解决方案来解决这个问题,我会很高兴。
发布于 2021-10-19 16:55:46
在我看来,它们看起来像一个状态集,你有没有尝试过下面的命令?
kubectl get statefulset --all-namespaces
https://stackoverflow.com/questions/69633713
复制相似问题