[英]How to scale a CRD Controller in Kubernetes
我正在阅读很多关于CRD控制器的文档
我用我的业务逻辑实现了一个,有时候我遇到了这种竞争条件:
bar
称它为Foo
Deployment
,并将其保存在Foo
对象中的名称(作为参考) error syncing 'default/bar': Operation cannot be fulfilled on Foo.k8s.io "bar":
the object has been modified; please apply your changes to the latest version
and try again, requeuing
问题是因为我的Deployment
有一个生成的名称,也许save(Foo)失败了,我有两个Deployment
有两个名字。
我暂时没有找到解决问题的方法,但它提出了一个问题。
如果我有多个控制器在运行?
我已经启动了两个控制器,并且通过创建一个新对象获得了相同的竞争条件。
那么,扩展CRD控制器并避免这种竞争条件的最佳设计是什么?
通常,您只运行一个控制器副本,或者在任何给定时间至少只有一个处于活动状态。 只要你小心地编写你的代码,那么它在技术上并不重要,但实际上没有多少理由可以运行多个代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.