1. 程式人生 > >K8s之Etcd

K8s之Etcd

一個用戶 server 事件處理 mage 持久 nap 等等 write 方式

Etcd架構圖如下:

技術分享圖片

從etcd的架構圖中我們可以看到,etcd主要分為四個部分。

  • HTTP Server: 用於處理用戶發送的API請求以及其它etcd節點的同步與心跳信息請求。
  • Store:用於處理etcd支持的各類功能的事務,包括數據索引、節點狀態變更、監控與反饋、事件處理與執行等等,是etcd對用戶提供的大多數API功能的具體實現。
  • Raft:Raft強一致性算法的具體實現,是etcd的核心。
  • WAL:Write Ahead Log(預寫式日誌),是etcd的數據存儲方式。除了在內存中存有所有數據的狀態以及節點的索引以外,etcd就通過WAL進行持久化存儲。WAL中,所有的數據提交前都會事先記錄日誌。Snapshot是為了防止數據過多而進行的狀態快照;Entry表示存儲的具體日誌內容。

通常,一個用戶的請求發送過來,會經由HTTP Server轉發給Store進行具體的事務處理

如果涉及到節點的修改,則交給Raft模塊進行狀態的變更、日誌的記錄,然後再同步給別的etcd節點以確認數據提交

最後進行數據的提交,再次同步。

K8s之Etcd