#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 терпел неудачу, — это совсем другое дело)