开始新对话

未解决

此帖子已超过 5 年

1340

2015年5月31日 19:00

Docker开源网络管理项目libnetwork简介

​ ​
​ ​

​Docker​​开源网络管理项目​​libnetwork​​简介​

​ ​
​ ​

​ ​

​转载请在文首保留原文出处:​​EMC​​中文支持论坛​​https://community.emc.com/go/chinese​​ ​image001.gif

​ ​
​ ​

​介绍​

​ ​
​ ​

​ ​

​ 今年​​ ​​3​​月份的时候,著名的容器技术供应商​​Docker​​收购了​​SDN​​(软件定义网络)技术创业公司​​SocketPlane​​,以构建一个健康的容器网络生态系统。于是近日在网络合作伙伴​​Cisco​​、​​IBM​​、​​Joyent​​、​​Microsoft​​、​​Rancher​​、​​VMware​​和​​Weave​​的帮助下,​​Docker​​对外发布了开源项目​​libnetwork​​。​​Libnetwork​​一开始的代码只是​​libcontainer​​和​​Docker Engine​​中网络部分代码的合并,​​Docker​​官方的愿景是希望​​libnetwork​​能像​​libcontainer​​一样,成为一个多平台的容器网络基础包。​

​ ​

​ 本文将介绍​​libnetwork​​到底和​​SDN​​有哪些联系,自身又有哪些特性和功能。​

​ ​
​ ​

​更多信息​

​ ​
​ ​

​ ​

​SockerPlane​​:​

​ ​

​ ​

​ SocketPlane​​主要提供多主机容器网络解决方案,主要基于​​Open vSwitch​​和​​Docker​​,提供给基于容器的云环境下的可编程软件定义网络。其最开始是由​​4​​个人创办的,希望该系统能成为​​Docker​​生态里重要的一部分。​​SocketPlane​​一直没有寻求风险投资的支持,其成功与​​Docker​​的成功是息息相关的。现在​​SocketPlane​​加入​​ Docker ​​显然将会大大促进了​​ Docker ​​的进一步发展。​

​ ​

​ 使用​​SocketPlane​​的作用是可以在一个逻辑网络内创建多个容器。这样的网络可以存在于一个单处理器的地址空间内,不需要调用网络控制器。开发者不想操作是否是​​VLANs, VXLANs, Tunnels​​或者是​​ TEPs. ​​对于架构人们最关心的是性能和可靠性。而​​SocketPlane​​在​​socket​​层面提供了一个网络的抽象层,通过可管理的方式去解决各种网络问题。​​SocketPlane​​主要特性:​

​ ​

​1.​​ ​​Open vSwitch​​集成​

​ ​

​2.​​ ​​用于​​Docker​​的零配置多主机网络​

​ ​

​3.​​ ​​Docker/SocketPlane ​​集群的无缝扩展​

​ ​

​4.​​ ​​支持多网络​

​ ​

​5.​​ ​​分布式​​IP​​地址管理​​ (IPAM)​

​ ​

​ SocketPlane​​多主机下的​​VXLAN​​网络示例:​

​ ​image003.jpg​ ​
​ ​

​ ​

​容器网络模型(​​Container Network Model​​):​

​ ​

​ ​

​ 受之前的一个​​GitHub issue​​启发,​​libnetwork​​引入了容器网络模型(​​CNM​​)的概念,​​CNM​​定义了三个新的术语,分别是网络沙箱、​​Endpoint​​、​​Network​​。网络沙箱指的是在每一个容器中,将会有一个隔离的用于网络配置的环境。​​Endpoint​​是一个网络接口,可用于某一网络上的交流。​​Network​​是一个唯一的且可识别的​​Endpoint​​组。​

​ ​image004.jpg​ ​
​ ​

​ Libnetwork​​使用​​Go​​语言编写,目标除了定义一个容器网络模型(​​CNM​​),还为应用程序提供一致的编程接口以及网络抽象。目前​​libnetwork​​仍在全力开发中,并没有达到使用标准。​

​ ​

​ 从官方博客中得知,设计这样一个可插拔的网络接口非常困难,因为网络部分的工作涉及​​Docker Engine​​和​​libcontainer​​。值得高兴的是,现在​​Docker​​公司正在使用​​CNM API​​重写​​Docker​​的​​bridge​​网络(​​docker0​​)。接下来,​​Docker​​公司将会把​​libnetwork​​集成到​​Docker Engine​​,并在​​Docker CLI​​中使用新的网络命令。具体的项目路线图读者可以参考​​GitHub​​。​

​ ​
​ ​

​参考​

​ ​
​ ​

​ ​

​GitHub: docker/libnetwork​

​ ​

​Docker​​博文:​​Docker Networking takes a step in the right direction​

​ ​
​ ​

​应用于​

​ ​
​ ​

​ ​

​Docker​​、​​SDN​

​ ​

​ ​

​ ​
没有回复!
找不到事件!

Top