etcd2.1發布了!

jopen 9年前發布 | 8K 次閱讀 etcd
 

【編者:etcd2.1為etcd的官方最新版本,支持眾多高級功能如:在線不中斷更新與新的鑒權API等眾多改進與新功能】

經過數月的艱苦工作,etcd2.1發布了。自從1月份2.0版本發布以來,整個研發團隊收集了來自真實生產環境中的眾多反饋信息,正是基于這些反饋我們發了新的2.1版本;新功能包括:鑒定/授權API、新的監控API、改進了傳輸的穩定性、改進了etcd服務器集群之間傳輸數據的性能、增強了集群的運行穩定性。

etcd是一個開源的、分布式的、基于鍵值對存儲的服務器集群共享配置、服務發現以及服務節點調度解決方案。使用etcd,集群可以應付單點失效問題;同時etcd也是CoreOS的核心組件,它為CoreOS帶來了自動節點配置自動更新,節點工作協調以及容器網絡堆疊(setting up overlay networking for containers)等功能。

如果你覺得看簡介比較繁瑣,你可以在 GitHub上 下載我們最新的二進制文件。同時,etcd2.1.1已經包含在了CoreOS 725.1.0中了(現在在alpha通道中),所以你可以自己下載去玩耍。

從2.0版不宕機滾動升級

從2.0版升級到2.1版可以不停服務完成升級。你可以根據向導提示,將集群一步步從2.0升級到2.1.詳細信息可以參考 升級文檔 。如果你當前運行的版本低于0.4.X則你必須先升級到2.0,然后從2.0版升級到2.1.

同時,etcd2.1是目前最新的發布版本;所以所有的bug修改都會以2.1版本為基礎,不在針對之前的2.0.X版本發布修改。

發布鑒權API

這次更新一個重要的特性是在 /v2/auth 這個端,為etcd的鍵值對API加入了鑒權的功能;這個API允許你通過為key加入用戶與角色的前綴并通過HTTP的方式來鑒權;這樣可以使團隊合作更加可控。這個功能包含在etcd的HTTP Server、etcd的ctl客戶端以及 etcd/client 的Go開發包中。你可以在etcd權限管理文檔中找到更多的細節。但是還是要注意,這是個實驗型的功能,而且會隨著用戶不斷的反饋而改進;我想我們的方向是正確的,但是對于API的細節可能會發生調整。

改進了傳輸穩定性

很多使用etcd的用戶所在的網絡環境不是很好,包括高延遲,網絡數據不一致等問題比較多;我們雖然不能保證etcd可以應付所有復雜的網絡環境,但是我們在這一版中對etcd在使用網絡方面做了很多優化,使得etcd在復雜網絡環境情況下能夠更好的工作。

首先,我們減少了建立連接的開銷,同時使得一致性協議(raft)的通信更加高效與穩定;現在etcd的節點之間通過長連接來進行通信。其次,為了減少 raft命令提交延遲,每個raft附加消息(append massage)都附屬在一個“提交索引”(commit index)之下;在輕負荷(<100寫操作/秒)情況下提交延遲由100ms減少到1ms。最后, etcd的新的raft實現 能提供更好的內部數據流轉控制、顯著的減少了raft消息丟包的情況同時還改進了CPU與內存的使用效率。

對etcd進行功能性測試

我們在發布2.1之前的4個月就開始對etcd進行了嚴格的“ 錯誤分支插入 ”(fault-injecting)與自建的功能測試框架的嚴格測試;我們的目標是讓etcd在重度使用的情況下仍能夠保持功能上的容錯性。在這幾個月的測試中,我們發現etcd能夠在很多極其嚴苛與各種功能失效的情況下保持服務的魯棒性。而且我們會在2.1發布之后持續對etcd進行測試。

現在支持分級日志了。用戶根據業務需要設置日志級別;同時對于DEBUG級別的日志我們會重復啰嗦的記錄幾遍,所以etcd的默認日志的可讀性會提高很多。你可以通過設置flag來控制日志的級別,參考。etcd2.1發布了新的,并可以用于排錯(debug)與實時(real-time)的監控。它提供了對客戶端使用情況與資源利用方面的統計功能。向之前的鑒權API一樣,這個也是實驗性的功能,可能會根據反饋調整、改進。我們會一如既往的為把etcd打造成一個Google風格的低層的基礎構件,用戶可以開箱即用、信任它并且依賴它提供的服務。,持續為我們提供您的反饋,。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!