Thank you @mrshenli and @Kiuk_Chung for your responses; they are really helpful.
I have two follow-up questions:

According to this design, I have to run an etcd server, right? this is still a single point of failure. Is there any way to circumvent that?
Is there any way to force some specific values for ranks to some specific nodes?

Thanks a lot.