正如标题所述,这是我们今天要提的一件事情,发起一个开源项目——JAGUAR(捷豹)。这是我们的一个小尝试,希望这个项目能作为一个引子,拓展网络开源技术的落地方式。讲到开源,大家应该也都如数家珍,我们也是通过开源开放网络走进了大家的视野。值得庆幸的是,能够亲眼见证网络开源开放的浪潮,并能以微薄之力参与其中。
JAGUAR项目缘起于一年前和耿前辈一同开发的OpenDaylight课程,希望通过从零到一搭建一个开源项目来让学员真正了解开源文化,也能够在这个过程中真正全面的丰富知识、锻炼技能。然而一个开源项目没有真实生产需求也就注定只能是玩具,随后我们对JAGUAR的愿景也就变得更加丰富起来,期望通过SDN技术更好的解决生产环境中的问题,同时也能寓教于项目。
我们将第一个场景选择为容器集群网络,一是由于容器技术应用广泛,凭借其优秀的性能和高度的灵活性也获得的诸多开发者青睐,二是容器集群的网络方案一直不尽如人意,往往只能提供简单的连接功能,需要产生一些创新。考虑到Kubernetes的大范围使用,其网络实现还谈不上是比较成熟的SDN,我们最终将Solution确定为Kubernetes的网络解决方案,采用OpenDaylight作为SDN的平台。
项目源码发布在gitlab,项目地址: https://gitlab.com/sdnlab/jaguar。目前已有的初级版本已经可以实现基本的网络功能,我们计划在10月份发布第一个版本。下图是JAGUAR在kubernetes中的示例。
初代版本中JAGUAR通过OVSDB和RESTCONF对Kubernetes的POD进行管理,Jaguar的CNI插件主要负责管理Node和POD的属性。下图是网络的实现原理。
JAGUAR基于OpenDaylight进行开发,所以整个项目也遵循了EPL 1.0协议。非常欢迎志同道合的朋友一同加入我们共同参与项目发展。加入项目的讨论群,请添加微信:sdnlab001,会有工作人员拉你进群
我们对JAGUAR项目创建的全部过程进行了视频记录,以综合篇的方式录制了课程,免费提供给《OpenDaylight应用开发系列课程》的学员,一同参与JAGUAR项目的发展。
更多项目相关问题请见FAQ:https://gitlab.com/sdnlab/jaguar/wikis/JAGUAR-Project-FAQ