Rudder:簡化集群中容器的網絡配置

jopen 10年前發布 | 7K 次閱讀 Rudder

與Docker相關的開源軟件越來越多,Docker的生態圈也越來越成熟。近日,CoreOS團隊又發布了一款重量級工具Rudder,Rudder 是基于etcd的覆蓋網絡(overlay network),它能為每個使用容器調度服務(Kubernetes)的主機提供一個子網。Rudder簡化了集群中Docker容器的網絡配置,更可以大幅度減少端口映射方面的工作。

網絡橋接(bridge)是 Docker容器默認的網絡模式。當Docker啟動時,它會在宿主機器上創建一個名為docker0的虛擬網絡接口,并隨機選擇一個IP地址和子網掩 碼。通過docker0,容器即可與主機進行通信。基本的網絡配置Docker可以自動完成,但是一些其它的配置比如端口映射就需要手動指定了。如果在一 個集群中每個Docker容器都需要配置端口映射,那將會是一個復雜而又龐大的工作。

如何在管理集群中Docker容器的網絡一直是個難點,谷歌的Kubernetes解決了容器的集群管理問題,現在CoreOS發布了 Rudder,它可以為集群中的每個主機都創建一個覆蓋Mesh網絡并指定一個子網,也就是說 Kubernetes 集群中的每個主機都有一個完整的子網,例如機器 A 和 B 可以有 10.0.1.0/24 和 10.0.2.0/24 子網。

Rudder基于CoreOS的分布式鍵值存儲系統etcd構建,并使用UDP通信。etcd用于存儲配置數據以及子網分配信息。一旦Rudder 啟動,Rudder的守護進程會檢索配置信息以及正在使用的子網列表,Rudder會隨機選擇一個可用的子網并在etcd中注冊。如果注冊成 功,Rudder會在接下來的24小時內使用它。如果注冊失敗,這證明其它的主機已經注冊成功,失敗的主機需要重新選取并注冊。在子網地址失效之前,如果 主機仍需要使用此地址,它會通過一個更新操作來延長使用期。

CoreOS已經在其內部環境中對Rudder進行了測試,盡管Rudder會帶來一丁點的網絡延遲,但是吞吐量基本沒有影響。下面是官方在AWS m3.medium VM上使用qperf工具進行測試的測試結果:

Rudder:簡化集群中容器的網絡配置

目前Rudder只支持GCE,官方也承諾后續會支持其它的云平臺。CoreOS的生態圈(Docker+CoreOS+Kubernetes+Rudder)里又加一員猛將,Hacker News上也有很多的討論,讀者可以自行閱讀。

來自:http://www.infoq.com/cn/news/2014/09/rudder

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