我有一組 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 部署無關。
我還能嘗試洗掉那些豆莢嗎?歡迎任何幫助。
uj5u.com熱心網友回復:
好的,我能夠找到根本原因。
和:
kubectl get all --all-namespaces
我查找了與 Pod 名稱相關的所有內容。在這個原因中,我發現了相關的服務。洗掉這些服務后,Pod 沒有重新創建。
我仍然認為這不是解決問題的好方法(“只需洗掉具有相同名稱的所有內容”......),如果有人能提出更好的解決方案來解決這個問題,我會很高興。
uj5u.com熱心網友回復:
對我來說,它們看起來像一個 statefulset,您是否也嘗試過以下命令?
kubectl get statefulset --all-namespaces
uj5u.com熱心網友回復:
這真的很像一個statefulset,誰控制pods
StatefulSet 中的 Pod 具有粘性且唯一的標識。此身份基于由 StatefulSet 控制器分配給每個 Pod 的唯一序數索引。Pod 的名稱采用“<statefulset name>-<ordinal index>”的形式。
所以,試試看 kubectl get statefulset --all-namespaces
uj5u.com熱心網友回復:
那必須是一個 statefulset
但是檢查這個鏈接,你可能在 terraform 中使用了這樣的東西:https : //registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/stateful_set
kubectl get statefulset -n you-namespace
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/326796.html
