Удаление зависаний пространства имен в финализаторе пользовательских ресурсов
Я определил контроллер (оператор) для обработки некоторых пользовательских ресурсов в своем пространстве имен K8S. каждый пользовательский ресурс имеет финализатор, поэтому контроллер может обработать его до того, как он будет удален:
например
kind: MyCustom
metadata:
finalizers:
- MyCustom.finalizers.com
name: mycustomResourceInstance
это работает хорошо, пока я не удалю пространство имен ("kubectl delete ns"). если мусор k8s сначала собирает модуль контроллера - mycustomResourceInstance остается в состоянии удаления и препятствует успешному удалению пространства имен.
Обходной путь - отредактировать mycustomResourceInstance и удалить финализатор.
Есть ли способ убедиться, что контроллер не удаляется, в то время как какие-либо экземпляры пользовательского ресурса существуют в пространстве имен?
1 ответ
Вы должны изучить ссылки на владельцев и удаление каскадных данных переднего плана https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ и внедрить их в свой контроллер, чтобы сборщик мусора удалял ваши объекты по порядку.