модуль kubernetes продолжает перезапускаться после его удаления

#kubernetes #kubectl #restart

Вопрос:

У меня есть набор модулей Kubernetes (Kafka). Они были созданы Terraform, но каким-то образом они «выпали» из состояния (Terraform их не распознает) и неправильно настроены (они мне все равно больше не нужны).

введите описание изображения здесь

Теперь я хочу полностью удалить модули из кластера. Основная проблема заключается в том, что даже после того, как я их уничтожаю / удаляю, они продолжают воссоздаваться / перезапускаться.

Я пытался:

 kubectl get deployments --all-namespaces
 

а затем удалил пространство имен, в котором находились модули

 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.

Что еще я могу попробовать, чтобы удалить эти модули? Любая помощь приветствуется.

Ответ №1:

Это действительно похоже statefulset на то, кто контролирует pods

Модули в StatefulSet имеют фиксированную уникальную идентификацию. Это удостоверение основано на уникальном порядковом индексе, который присваивается каждому модулю контроллером StatefulSet. Имена модулей принимают форму «<имя набора состояний> -<порядковый индекс>».

Итак, попробуйте kubectl get statefulset --all-namespaces

Ответ №2:

Хорошо, я смог найти основную причину.

С:

 kubectl get all --all-namespaces
 

Я просмотрел все, что связано с именем модулей. По этой причине я нашел связанные службы. После того, как я удалил эти службы, модули не были воссозданы снова.

Я все еще думаю, что это не очень хорошее решение проблемы («Просто удалите все, что имеет одно и то же имя» …), И я был бы рад, если кто-нибудь может предложить лучшее решение для решения этой проблемы.

Ответ №3:

Для меня они выглядят как statefulset, вы пробовали также следующую команду?

 kubectl get statefulset --all-namespaces
 

Ответ №4:

это должен быть statefulset

но проверьте эту ссылку, возможно, вы использовали что-то подобное с terraform: https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/stateful_set

 kubectl get statefulset -n you-namespace