我有一个操作员,里面有 2 个控制器。控制器 A 监视 CRD_A,如果它找到 A 类型的 CR(我们在集群中只能有一个这种类型的 CR),控制器会创建一个 podA 并将 CR 设置为 podA 的所有者。控制器 B 监视 CRD_B,如果找到 B 类型的 CR,控制器会检查 podA 是否存在,并通过使用来自 CR 的信息向 podA 发送 HTTP 请求来设置 pod。这是对操作员工作的简单概述。
问题是当 podA 被删除(由我或 Kubernetes 想要重新调度它)时,会触发 controllerA 的协调,因为 CR_A 是 podA 的所有者,它会创建一个新的 podA。但我也希望控制器 B 能够协调,因为它必须设置 podA,因为现在它没有协调,因为 podA 和控制器 B 之间没有连接。
发生此类事件时,触发控制器 B 协调的正确方法是什么?我不能将两个 CR 设置为 pod 的所有者。我认为控制器A应该以某种方式向控制器B发送协调事件,但我不知道这怎么会发生,这是正确的方法吗?