AKS не удаляет потерянные ресурсы

#kubernetes #azure-aks #orphaned-objects

#kubernetes #azure-aks #потерянные объекты

Вопрос:

Через некоторое время у меня возникают проблемы с некоторыми из наших кластеров, где автоматическое удаление потерянных ресурсов перестает работать. Таким образом, если я удаляю развертывание, ни набор реплик, ни модули не удаляются, или если я удаляю набор реплик, создается новый, но предыдущие модули все еще существуют. Я даже не могу обновить некоторые развертывания, потому что это создаст новый replicaset pods.

Это актуальная проблема, поскольку мы создаем и удаляем некоторые ресурсы и полагаемся на автоматическое удаление дочерних элементов.

Дело в том, что при уничтожении и повторном создании кластера он работает идеально, и мы не смогли отследить то, что мы сделали, что вызвало проблему.

Я попытался обновить узлы master и agent до более новой версии и перезапустить kubelet в узлах агента, но это ничего не решает.

Может ли кто-нибудь знать, в чем может быть проблема или какой компонент отвечает за каскадное удаление потерянных ресурсов?

Случается ли это с кем-то еще? Это случилось с нами уже в 3 разных кластерах с разной версией Kubernetes.

Я протестировал его, создав тестовое развертывание в документации K8s, а затем удалил его:

 kubectl apply -f https://k8s.io/examples/application/deployment.yaml

kubectl delete deployments.apps nginx-deployment
 

Но капсулы все еще там.

Заранее спасибо

Комментарии:

1.В некоторых случаях он также может быть запущен из-за задания или набора демонов. Пожалуйста, проверьте это, выполнив команду: kubectl get jobs, daemonsets.app. А затем удалите их с помощью соответствующей команды. Также вы читали: kubernetes.io/docs/concepts/workloads/controllers/… thenewstack.io/deletion-garbage-collection-kubernetes-objects ?

2. Привет, похоже, проблема кроется в kube-controller-manager, который выходит из строя из-за неправильного CRD, развернутого в кластере. Это печально, но да, один развернутый CRD может привести к сбою всего кластера (из-за сбоя webhook)

3. Можете ли вы опубликовать это как ответ, чтобы быть более заметным для сообщества?

Ответ №1:

Проблема была вызвана неисправным CRD / Admission Webhook. Это может показаться странным, но неправильный CRD или неисправный модуль, выполняющий роль webhook, приведет к сбою kube-controller-manager для всех ресурсов (по крайней мере, в AKS). После удаления CRD и неисправного webhook он снова начал работать. (Причина, по которой webhook терпел неудачу, — это совсем другое дело)