【发布时间】:2021-02-15 19:33:58
【问题描述】:
我有一个操作员,里面有 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。但我也希望 controllerB 能够协调,因为它必须设置 podA,因为现在它没有协调,因为 podA 和 controllerB 之间没有连接。
当此类事件发生时,触发控制器 B 协调的正确方法是什么?我不能将两个 CR 设置为 pod 的所有者。我认为控制器A应该以某种方式向控制器B发送协调事件,但我不知道这是怎么发生的,这是正确的方法吗?
【问题讨论】: