终结器如何为 CustomResouce 对象工作?

How Finalizer work for CustomResouce object?

在Kubernetes和Operator-sdk中,我们可以定义CRD(Custom Resource Definition)和CR(Custom Resource)。在我的操作员控制器中,当初始化 CR 时,控制器协调会创建一个新的 Deployment 和服务。

当我们删除CR对象时,关联的资源(如Deployment或service)也会同时被删除。我知道它应该由 CR Finalizer 完成。但是,在 Operator-SDK 和我的控制器代码中,我从来没有看到任何代码为 CR 注册或添加 Finalizer,Operator-Sdk 是否有任何默认行为?

任何人都可以指出它是如何处理这种情况的 - “在删除 CR 时,相关的部署和服务也已删除”?控制器中的哪个部分负责?

关联资源的删除不是控制器的一部分。由 Kubernetes 的 garbage collector.

完成

基本上,垃圾收集器在您的代码中使用 OwnerReference objects to find orphaned resources and delete them. Most likely, you set OwnerReference by calling controllerutil.SetControllerReference 方法。