Etcd 是一個分散式、可信賴的 Key-Value 儲存系統。可用於服務發現、資源共享。
也就是 Etcd 通常是一個 Cluster,並有一個 Leader。
In K8s, Etcd do Service discovery and stores cluster state and configuration
https://zh.wikipedia.org/wiki/Raft
https://medium.com/@kasunindrasiri/understanding-raft-distributed-consensus-242ec1d2f521
Etcd 基於 Raft 演算法,Raft 透過選舉領(Leader)的方式做共識演算法。
在 Raft Cluster 中,伺服器可能會是:
正常情況下只有一個 Leader & 剩下都是 Follower。由 Leader 接收所有外部請求。
Leader 會發送 Heartbeat 讓 Follower 知道 Leader 還在運作,當 Heartbeat Timeout 時,Cluster 會進入選舉模式。