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

Я определил контроллер (оператор) для обработки некоторых пользовательских ресурсов в своем пространстве имен 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/ и внедрить их в свой контроллер, чтобы сборщик мусора удалял ваши объекты по порядку.

Другие вопросы по тегам