pd 数量的部署问题

最近发现有个有趣的现象,
1、pd 部署1个,集群也可以用
2、pd 部署2个,集群也可以用
3、在部署2个pd的情况下,关闭1个pd,这个时候整个集群就不可用了,虽然另外1个pd 进程端口都还在
4、在部署2个pd的情况下,用tiup scale-in 缩容1个pd,但上这个时候集群也是可用的

麻烦哪位大佬解释下这么奇怪的现象?按理来说,pd要部署2个才能用,才能选出leader吧

关闭1个pd,属于故障
PD Leader Key 租约超时时间,超时系统重新选举 Leader。因为你部署2个,系统信息记录了,现在选举可能不足2个leader,会有异常,这个我明天验证一下
tiup scale-in 缩容1个pd,相当于你pd 部署1个,系统信息会更新,现在只有1个leader啦
pd 部署1个,不用选举呀,不触发选举才合理,一个村民就是村长:smirk:

etcd集群的Majority(Quorum) = N/2 +1,N为etcd集群中的总节点数,Quorum表示至少要有这么多个正常运行的节点,etcd才能正常提供服务,总节点数少于3个就不考虑多数派选举了,也可以理解为1的多数派就是1,2的多数派就是2,3的多数派也是2…

Nodes (Instances) Quorum
1 1
2 2
3 2
4 3
5 3
6 4
7 4
1 个赞

不奇怪呀,正常情况,pd leader 的选举遵循 raft 机制。在没有宕机的情况下,1个或者2个都有leader ,但是挂一个没法根据多数派选出 leader。在部署2个pd的情况下,用tiup scale-in 缩容1个pd ,那就变成1个pd了,就又成了前两种情况。

一直以为这种raft 组件,最起码要部署2个

1、部署1个pd,这个pd就是leader
2、部署2个pd,就可以选举其中1个pd当leader
3、 但是当存在2个pd的时候,如果其中1个pd 挂了,那么这个时候pd就不能选出一个leader 了,pd 组件就不能用了
这么理解对嘛

感谢大佬回复,多谢

三角形最稳定,肯定是需要奇数个才好选举Leader,否则群龙无首

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。