大话Docker系列(一):打造SDN容器百宝箱


本专题上一篇介绍了我们为什么需要Docker,那么接下来就是怎么做了。作为SDN领域从业者,如何让Docker服务于SDN,可能是大家比较关心的话题。接下来的几篇将讲述如何搭建一个灵活敏捷的CDSC(container define service cloud)平台。

开始聊Docker之前,我想先谈谈学习开源项目的个人体会。

学习一个开源项目比较好的套路是:先通过安装部署和运行,熟悉其大概提供的服务,根据官网的wiki等信息从宏观层面了解其大概架构,通过做一些实验熟悉其具体的功能和特性,通过对一个“点”的功能特性熟悉,进行拓展,形成知识的“线”和“面”。在此过程中,需要反复不断地进行一些调试操作和知识验证,熟悉一些细节特性,因为开源项目里有很多不完善和错误的地方。

当你已经熟悉了开源项目的功能服务后,如果仅为了解它,到此可以为止了,如果你想利用它为自身的产品服务还不够,可能需要深入代码层面,了解其设计架构,走通其运行流程。这样可以在服务自身产品的过程中,裁剪起来才游刃有余。

废话不多说了,Docker作为开源界比较知名的项目,也是这个思路。我个人也是零碎的接触Docker,更还没有把它运用于实际工作中,因此理解认识也是比较肤浅,若有不对的地方,欢迎指教。如果你还是新手,建议可以先到其官网https://www.docker.com/熟悉了解。如果你觉得自己英文不咋的,国内已有前辈们总结了一些资料,比如http://www.dockerpool.com。

开源项目只有把它应用于自身的实际工作,才能体现其价值。作为SDN领域从业者,如果要在公司内部推广Docker应用的话,下图是个人的一些不成熟的想法:

打造SDN容器百宝箱(一)-图1

SDN领域的开源项目比较多,无论是作为高校科研人员,还是企业内部的部署测试,都迫切需要“拿来即用”的软件服务,在这样的需求背景下,搭建一个上述的CDSC(container define service cloud)平台是必要的也是可行的。

在上图中,主要分为镜像存储与管理,容器集群的管理,容器的统一调度和UI展示层。

镜像存储,目前Docker分为共有仓库和私有仓库。但共有仓库下载上传比较慢,如果想把Docker作为企业级进行部署使用,必然要搭建私有仓库,因为使用起来更快,更安全可控。如何建私有仓库官网有介绍,就不在本文重复了。下图是之前搭建好的私有仓库部分截图:

打造SDN容器百宝箱(一)-图2

对于实际的镜像文件的存储,可以通过glance+swift技术思路进行高效管理。

容器集群的管理主要借助于Docker生态系统中另一个开源项目kubernetes。它实现了更加高效,灵动的容器管理,通过指定用户自定义网桥和Open vSwitch的GRE保障了跨宿主机容器间的通信,打通了2-3层。在容器集群里的SDNPool里主要存放SDN领域相关的容器服务,大家应该不陌生,用到的时候拿来即用,一次部署,随时运行,同时比虚拟机占用的资源又小;在workPool里主要存放一些日常工作需要的常用工具软件。当然作为开发人员或者测试人员,也可定制的自己的环境,当项目组有新人过来时,直接分发个容器给他(她)就行了,再也不用手把手教学了。

在容器统一调度部分,主要设计容器管理(创建,查看,删除,上传,启停);端口管理,由于Docker是通过宿主机的端口NAT映射来区分管理不同的容器的,因此端口的管理与分发需要集中管理,方便监测。安全控制部分,其实Docker1.0到Docker1.3变化比较大的部分,就是Docker的安全加固,我也根据官网的介绍做了一遍,比较繁琐,好在连蒙带猜搞定了。Docker的安全加固未来估计考虑的方面更多,这是任何系统框架的一个老大难的问题。容器拓扑,主要是可视化集群中的容器,可以通过官网介绍的playground尝试。容器的流量监控,当集群中的大量容器提供服务时,很有必要监控容器的流量,这个可以通过sflow技术实现,sflow是一种以设备端口为基本单元的数据流随机采样流量监控技术。CDSC系统的可视化展示层既可以自己开发一套,也可以基于shipyard二次开发,通过nginx做web的负载均衡,增强web访问的体验。

总结,IT技术的发展,开源项目的出现,总是一浪一浪的。很多技术项目的发展具有惊人的相似性。如下图所示:

打造SDN容器百宝箱(一)-图3

起初是个好的idea,还是很小的项目,随着参与的公司和人越来越多,此项目会变得很臃肿庞大,看起来很强大。随着人们因为期望越来越高,应用场景越来越复杂。终于有一天,一些人实在看不下去了,做了一个轻量级的组件式,更加敏捷的东东出来。比如OpenDaylight与ONOS,hadoop与spark,KVM与Docker等等。

那么,如何要实现CDSC(container define service cloud)平台,下一篇将带您进入实战篇。Docker之风已经刮起,你想做那头会飞的猪吗?


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/4918.html
分享到:
相关文章
条评论

登录后才可以评论

SDN哪家强 发表于14-12-11
8