打造SDN容器百宝箱(一)

网络
作为SDN领域从业者,如何让Docker服务于SDN,可能是大家比较关心的话题。接下来的几篇将讲述如何搭建一个灵活敏捷的CDSC(container define service cloud)平台。

作为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
相关推荐

2015-09-22 16:11:41

SDNDocker

2009-10-28 13:54:38

linux安装显卡驱动

2011-04-13 09:40:27

2009-10-28 12:05:32

linux监控技术

2009-11-05 11:12:21

WCF自宿主

2009-10-27 13:14:35

VB.NET窗体应用

2009-10-28 18:35:10

Linux基础用户

2009-11-09 11:31:47

WCF消息队列

2009-10-28 09:48:31

VB.NET XmlR

2009-11-03 16:17:39

ADO.NET Ent

2009-10-28 14:51:33

VB.NET设计制作窗

2009-10-27 15:42:04

VB.NET文件对象

2009-11-16 14:52:16

PHP数组

2009-11-12 14:18:19

ADO.NET分页

2009-11-03 16:57:34

ADO.NET FAQ

2017-07-05 11:09:35

华为开发云

2023-07-24 08:27:38

2009-11-18 18:18:10

PHP Web查询数据

2016-01-14 14:17:51

密码管理密码分析安全工具
点赞
收藏

51CTO技术栈公众号