#kubernetes #operator-sdk
#kubernetes #оператор-sdk
Вопрос:
В Kubernetes и Operator-sdk мы можем определить CRD (определение пользовательского ресурса) и CR (пользовательский ресурс). В моем операторном контроллере, когда инициализируется CR, затем согласование контроллера создает новое развертывание и службу.
Когда мы удаляем объект CR, одновременно удаляются и связанные ресурсы (например, развертывание или сервис). Я понимаю, что это должно быть сделано CR-финализатором. Но в Operator-SDK и моем коде контроллера я никогда не вижу никакого кода для регистрации или добавления финализатора для CR, есть ли какое-либо поведение по умолчанию для Operator-Sdk?
Может ли кто-нибудь указать, как это работает для случая — «при удалении CR также были удалены связанные развертывание и служба»? Какая часть контроллера отвечает за это?
Ответ №1:
Удаление связанных ресурсов не является частью контроллера. Это делается сборщиком мусора Kubernetes.
По сути, сборщик мусора использует объекты OwnerReference для поиска потерянных ресурсов и их удаления. Скорее всего, вы устанавливаете OwnerReference
, вызывая controllerutil.SetControllerReference
метод где-то в своем коде.