3

在 Kubernetes 和 Operator-sdk 中,我们可以定义 CRD(自定义资源定义)和 CR(自定义资源)。在我的操作员控制器中,当初始化 CR 时,我会创建一个新的部署和服务。

当我们删除一个 CR 对象时,相关的资源(如 Deployment 或 service)也会同时被删除。我知道它应该由终结者完成CRCRD这只是我的猜测。

现在我遇到了一个问题,在 Operator 测试期间,在envTest环境下,当我删除 a 时CR,它的相关资源(部署或服务)没有被删除。

我很困惑。中real k8s cluster,关联资源(部署或服务)在我删除一个时可以自动删除CR,下envTest environment,为什么它不删除关联资源?

谁能指出原因。

4

1 回答 1

2

孤儿资源的删除由 Kubernetes 的垃圾收集器完成,该垃圾收集器在kubelet中实现。当您在envTest环境中测试操作员时,垃圾收集不起作用,因为kubelet该环境中缺少垃圾收集(它只部署 API 服务器和 etcd)。

于 2020-11-13T18:02:16.420 回答