作为全球首个被CNCF纳入托管的开源CNI网络项目,Kube-OVN已经成为K8s生态中功能最完备、对传统基础设施兼容性最佳的开源网络组件。
开源至今两年的时间里,Kube-OVN已完成29次发版,在Github上收获近900 star,有来自灵雀云、中国电信、Intel、华为、浪潮等诸多公司的数十位贡献者参与代码编写,同时积累了70 企业用户,其中不乏联通、电信、华为、联想、中国电子、字节跳动等巨头公司。同时,Kube-OVN也是木兰开源社区旗下的明星项目之一。
随着社区贡献者和用户体量的不断增加,有越来越多新的需求和新的使用场景不断被挖掘出来。Kube-OVN发起人、社区Maintainer,来自灵雀云的网络工程师刘梦馨在前不久举办的Kube-OVN社区大会上,分享了Kube-OVN的发展历史、最新的功能及使用场景,并重点介绍了下一阶段项目发展的Roadmap。
Kube-OVN的成长历程
Kube-OVN项目在2019年5月正式开发了第一个版本,当时还是在十分早期的阶段,而且只有很有限的功能,比如在0.1.0这个版本中,只有很简单的子网固定IP的分配和基本的pod和node之间的互通。之后就开始了一步一步的探索,思考如何把这个项目做得越来越好。
这里列出了我们认为对项目和社区发展来说比较关键的几个步骤:
在Kube-OVN成长的过程中,我们还和很多其他的开源社区做过联动,比如OpenStack、KubeSphere、KubeVirt等社区,希望能从社区联动中学习开源社区运营方式、与社区同行进行深入的技术交流、拓展联合使用场景,同时也希望吸引更多对容器网络、对Kube-OVN感兴趣的社区用户加入。
到目前为止,Kube-OVN在Docker hub上的镜像下载达到了150万次左右,项目的贡献者已有40个,除了灵雀云内部的开发者,还有来自中国电信、浪潮、Intel、华为等企业的社区开发者。社区开发者给我们提供了很多的帮助,比如基于他们特定的使用场景,帮Kube-OVN实现了很多比较重和复杂的功能,在此也对这些开发者表示感谢。
开源两年来Kube-OVN共发行了29个版本,基本的节奏是每三个月会进行一个大的功能性版本的发布,每个月会进行bug修正等小版本的发布。希望能够保持这样的节奏,给大家提供越来越丰富的功能的同时,把Kube-OVN的稳定性、性能、还有可监控性等企业更为关注的特性不断完善。
Kube-OVN近期功能更新
1、多Vlan和Underlay的Network
Kube-OVN最初只有Overlay的Network,是通过应用的隧道来建立的,但是在客户的实际场景里面,有很多关于Underlay或者多Vlan这样直接利用物理网络和物理设备的需求,感谢社区贡献了Vlan和Underlay网络需求,使得Kube-OVN在具有Overlay网络的同时,对那些对物理网络有极端的性能要求,或者有跟物理网络进行互通的网络需求的用户,也可以通过Vlan或者Underlay的方式来满足。
2、通过BGP路由的方式,宣告Pod/Subnet地址
除了通过物理网络Underlay直接打通,也提供了通过路由的方式,把容器网络包括容器的子网,跟外部的网络进行互通。
3、基于NVIDIA Smart-NIC进行性能方面的改进
去年跟NVIDIA智能网卡团队接触之后,了解到智能网卡有一些硬件卸载的能力,能够把OVS的流表匹配、隧道、TC等功能卸载到网卡上来执行。于是Kube-OVN和NVIDIA Smart-NIC进行了一些对接,从性能来看基本上可以达到和物理网络完全相同的水准,应该是目前容器网络里面最优的性能,不管是在延迟、吞吐量,还是CPU的消耗上,都能做到极限。所以如果大家未来对性能有需求的话,也可以考虑通过智能网卡进行网络的加速。
4、与Intel团队在DPDK上的合作
Kube-OVN可以在容器中运行DPDK的应用,这样可以通过用户自定义网络栈的方式,实现高性能的自定义网络。
5、支持双栈网络
Kube-OVN不仅支持IPv4和IPv6这种单栈网络的形式,同时也支持IPv4和IPv6同时存在的双栈的网络,如果用户从IPv4到IPv6进行迁移,这也是兼容比较友好的方式。
6、支持多集群网络
用户实际使用场景中,不太可能只有一个K8s的网络集群,而是会有多个K8s网络。那么如何在多个K8s集群之间进行网络的互通和流量的调度,在未来需要进行更多拓展。
当前,我们已经做到把两边的网络进行打通的基础功能,这样pod访问对端的pod时,不需要再经过比如说NAT,或者从外面绕一圈这种方式进行IP映射,而是直接通过对端的pod就可以直接访问了,这样相当于两边是一个三层透明、互通的状态。在这个基础之上,就可以做跨集群的流量调度,或者是跨集群的负载均衡等更复杂的工作。
7、支持多VPC的网络
在我们看来,传统的K8s网络其实还是一个大二层的网络,并没有租户的概念,而有了VPC这种多租户的网络支持之后,我们可以做到类似于公有云的VPC使用场景,就是多个租户之间可以拥有一套独立的IP地址空间。
多个租户之间的IP地址和空间是可以重叠的。我们通过这种VPC的方式,在最底层通过虚拟路由器或者虚拟交换机这样的网络编排,使得每个租户拥有完全独立的网络架构。这套方案对于公有云或者大型集团是更加友好的网络模型。
8、对监控和诊断工具都做了一些比较大的优化
Kube-OVN目前已有200多项监控项目,并且对于一些诊断的工具,包括网络质量的监控和流表的追踪等,都进行了大幅的增强。
2021-2022:Kube-OVN的下一步规划
Kube-OVN在未来一年或者是更长的时间内将要如何发展,也是我们一直在思考的问题。
1、重中之重:Kube-OVN的性能优化
随着落地的场景越来越多,管理的集群规模越来越大,Kube-OVN在性能方面一直承受着比较大的挑战。因此,Kube-OVN在这一年里最重要的工作是性能的优化。目前看到有下面几个比较明确的改进方向:
- 针对大规模集群,我们考虑调整OVN内部逻辑,以及使用动态隧道等方式来优化网络性能;
- 同时考虑使用eBPF这样性能比较高的网络实现来强化目前的方案;
- 由于硬件的发展对网络的影响越来越大,未来还会考虑加大投入在硬件方面的集成工作,包括智能网卡、FPGA可编程网卡等。希望尽可能把处理较慢的CPU密集型的操作下沉到网卡上,这样能明显提升整体网络的性能。
2、对于安全和监控的不断强化
接下来会对整体的K8s Network policy进行调整,同时希望引入eBPF来完成像安全策略、监控,审计这样的偏底层的功能。
还会引入监控的可视化,以及ipsec隧道加密等功能,这样Kube-OVN就会拥有一个整体的安全监控解决方案。
3、更多的使用场景
在社区用户的共同努力下,我们探索出了Kube-OVN容器网络解决方案的更多使用场景。
- 新一代数据中心SDN 云原生时代,容器虚拟化已成为数据中心未来发展的必然趋势。伴随容器带来的便携、低成本、可扩展等明显的竞争优势,在数据中心内部如何构建合理可用的容器网络架构,以满足不同形态的业务部署模式,成为新的挑战。 Kube-OVN打通 K8s 网络和传统网络,支持多种云原生工作负载,并提供丰富功能增强数据中心网络的能力,兼顾满足容器托管的新一代数据中心对容器网络提出的灵活、稳定、性能、兼容等各种需求。 未来,我们希望不只是用Kube-OVN管理容器网络,也希望通过Kube-OVN去管理虚拟机、裸金属等基础设施的网络。也就是说,Kube-OVN不再局限于K8s层面,而是下沉到整个数据中心、基础设施里面,变成基础设施的一部分,成为统一调度所有工作负载的网络。
- IaaS与K8s统一网络技术栈 IaaS与K8s平行部署已经是大量用户的首选方案,可以为应用提供最佳的部署环境和最优化的性能保障。Kube-OVN可以帮助用户轻松打通K8s网络和OpenStack网络,让虚拟机和容器运行在同一网络平面,实现容器和虚拟机双向网络互访。
- 超融合/一体机 与传统架构相比,超融合/一体机对网络的负荷增加了2~4倍。Kube-OVN充分考虑超融合/一体机架构下,对分布式存储、业务访问以及节点之间通讯的网络需求,支持 Pod, KataContainer,KubeVirt 等多种K8s云原生工作负载;同时提供丰富的运维工具和监控面板,降低运维操作复杂度,为超融合/一体机场景提供完美的网络底层能力。
- 5G及边缘网络 我们看到跨集群的网络,包括多集群的Fedration、边缘计算等网络场景,都会对容器网络提出新的需求。 Kube-OVN提供诸如子网,固定IP,安全和QoS控制等网络管理功能,保证了租户间网络的强隔离和安全,同时避免资源争抢,极致利用边缘有限资源,为用户落地5G及边缘场景业务提供了高性能的网络支持。
- 微服务架构下高性能网络 Kube-OVN高性能的网络解决方案,让应用无缝接入K8s进行服务注册/发现的统一管理,实现应用系统的从接入、到容器化部署、再到微服务架构的平滑演进。
- 助力国产化生态发展 虽然市面上在容器网络方面有各种各样的技术,但目前主流CNI软件还是以国外开发为主。 Kube-OVN是由中国容器公司自主独立研发维护的开源软件,知识产权完全自主可控。同时,与鲲鹏、麒麟、飞腾、浪潮等国产化平台紧密开展深度合作与适配,是用户国产化生态下的开源容器网络组件选型的最佳选择。
Kube-OVN在CNCF和木兰开源社区的指导下,构建了完备的社区组织架构,同时也邀请到了一大批在云原生、网络和开源领域有影响力的大咖加入社区指导委员会,同时,灵雀云内部也建立了一个Kube-OVN的开发团队,通过这种专业的开源社区运营方式,以及稳定的研发力量,在接下来的半年中,我们会不断推出比较大的版本迭代和更新。
同时,也欢迎社区中对上述开发规划和社区运营感兴趣的小伙伴加入,大家共同描绘Kube-OVN未来的发展方向。