两个K8S控制器同时修改同一个资源可以吗?

Is it okay when two K8S controllers modify same resource at the same time?

我有几个 CRD,每个 CRD 都应该在集群中编辑 Container.Spec。 像 ENV、标签等...

如果资源由多个控制器管理,可以吗?

这种方法可能存在哪些缺陷?

是的,同一个对象可以被多个控制器更新。我认为此时 Pod 对象更新了将近一打。您可以 运行 解决的主要问题是写入冲突。通常在一个操作符中你做一个获取,然后发生一些事情,然后你做一个更新(通常是根对象案例的状态子资源)。这可能导致竞争条件。我建议查看使用服务器端应用来减少这些问题,它处理每个字段的跟踪而不是通过序列号处理整个对象。