要执行领导者选举,Kubernetes文档建议在候选吊舱集合中部署侧车。
https://kubernetes.io/blog/2016/01/simple-leader-election-with-kubernetes/
这辆副车按照以下步骤选举一位领导人。
这种方法几乎没有问题。
如果当前领导者挂起并且无法及时更新端点,则另一辆侧面汽车将获得领导。但是前任领导人要花一些时间才能意识到其领导地位被撤销。在这短暂的时间内,现有的2位领导者可以破坏共享的资源/数据。
在源代码中也提到了这一点。
This implementation does not guarantee that only one client is acting as a leader (a.k.a. fencing).
那么,用Kubernetes选举领导人的正确方法是什么?