在Kubernetes和Operator-sdk中,我们可以定义CRD (Custom Resource Definition)和CR (Custom Resource)。在我的操作员控制器中,当CR被初始化时,控制器协调创建一个新的部署和服务。
当我们删除CR对象时,关联的资源(例如部署或服务)也将同时删除。我知道它应该由CR Finalizer来完成。但是,在Operator-Sdk和我的控制器代码中,我从来没有看到任何为CR注册或添加Finalizer的代码,Operator-SDK有默认行为吗?
谁能指出它是如何工作的--“在删除CR的同时,相关的部署和服务也被删除了”?控制器中的哪个部分对此负责?
发布于 2020-11-14 01:58:04
删除关联资源不是控制器的一部分。这是由Kubernetes的garbage collector完成的。
基本上,垃圾收集器使用OwnerReference对象来查找孤立资源并将其删除。最有可能的情况是,通过在代码中的某处调用controllerutil.SetControllerReference方法来设置OwnerReference。
https://stackoverflow.com/questions/64823584
复制相似问题