集群网络通信方法、装置、存储介质和设备制造方法及图纸

技术编号:21612647 阅读:26 留言:0更新日期:2019-07-13 20:50
本发明专利技术提供了一种集群网络通信方法、装置、存储介质和设备,该方法包括:为集群中的多个交换设备中配置交换设备各自的IPv6地址,以及在交换设备上分配IPv6地址段;从IPv6地址段中,为集群中的一个或多个节点分配各自的节点地址段,节点地址段用于为节点中的Pod提供Pod地址;在节点上创建网桥,使得节点的物理网卡和节点中的每个Pod的Veth Pair的一端桥接。

Cluster network communication methods, devices, storage media and equipment

【技术实现步骤摘要】
集群网络通信方法、装置、存储介质和设备
本专利技术涉及互联网容器云服务领域,具体涉及一种集群网络通信方法、装置、存储介质和设备。
技术介绍
Kubernetes是Google公司推出并开源的一套分布式容器编排服务,越来越多的应用将通过Kubernetes以容器的形式进行开发、测试和运行。Calico是一个开源网络服务软件,使用路由的方式,实现了一个Kubernetes的网络模型。Calico提供了CNI(ContainerNetworkInterface,容器网络接口)插件给Kubernetes调用,同时需要在Kubernetes的每一个节点上运行calico/node服务,并且使用etcd进行存储。支持BGP(BorderGatewayProtocol,边界网关协议)和IPIP两种运行模式。根据运行模式,所有Calico/node之间运行BGP路由协议,或者配置IPIP隧道,负责所在节点路由表或隧道信息的维护更新。当发生BGP的创建和删除时,通过BGP协议通知到所有的节点,并且修改路由表,以此实现Kubernetes的网络模型。Flannel是一个开源的overlay网络软件,使用overlay网络的方式,实现了Kubernetes网络模型。Flannel使用etcd需要在每一个节点上运行一个用户态的flanneld进程,这个节点上的容器发往其他节点容器的的网络包,都会发送给flanneld。该进程使用KubernetesAPIServer或者直接使用etcd作为存储,将Kubernetes上的Service(即服务,本文中两者等同)和Pod信息保存起来,基于这些信息,flanneld将数据包发送给合适的容器。但是现有方案具有以下不足:Calico需要在所有节点上运行一个代理(Agent)程序,一旦这个代理出现异常,这个节点上所有的网络都会出现异常。BGP模式下,Agent之间运行BGP路由协议,同时还需要维护每个节点上的路由表,BGP本身就是一个复杂的协议,会带来额外的运维运营成本。而如果使用IPIP模式,则由于IP隧道的引入,又会对性能产生一定影响。Flannel也需要在每个节点上运行一个代理程序,同时,所有网络数据都会通过这个程序进行转发,该程序故障时这个节点上所有的容器网络都会失效。同时,这个程序时运行在用户态的,数据需要不停地在内核态和用户态之间拷贝,这就严重限制了容器的网络能力。此外,无论Calico和Flannel,它们实现的网络中,只有在Kubernetes集群内部,才能连通容器。Kubernetes集群外部的客户端想要连接容器的话,只能通过Service和专门的负责均衡服务。而现实情况中,Kubernetes集群内外的容器能够互相通信,是很多业务场景的需求,Calico和Flannel都无法很好地满足这一点。另外,Flannel不支持IPv6协议,并且Kubernetes对IPv6协议的支持性较差,不能很好地满足业务需求。
技术实现思路
为了解决上述问题。本专利技术提供一种集群网络通信方法、装置、存储介质和设备。在一些方面,提供了一种集群网络通信方法,包括:为集群中的多个交换设备中配置所述交换设备各自的IPv6地址,以及在所述交换设备上分配IPv6地址段;从所述IPv6地址段中,为所述集群中的一个或多个节点分配各自的节点地址段,所述节点地址段用于为所述节点中的Pod提供Pod地址;在所述节点上创建网桥,使得所述节点的物理网卡和所述节点中的每个所述Pod的VethPair的一端桥接。在一些方面,还包括:从所述IPv6地址段中,为所述集群中的一个或多个服务分配各自的IPv6地址,以作为服务IP地址,以及根据服务IP地址生成对应的服务IPv4地址;从所述IPv6地址段中,为所述集群的多个服务网关分配各自的IPv6地址,以作为服务网关地址。在一些方面,还包括:经由所述服务网关,向所述交换设备宣告所述服务IPv4地址、所述服务IP地址和与所述服务对应的一个或多个所述Pod地址;经由所述服务网关,在所述服务IP地址和与所述服务对应的一个或多个所述Pod地址之间进行数据通信。在另一些方面,一种集群网络通信装置,包括:交换设备配置模块,用于为集群中的多个交换设备中配置所述交换设备各自的IPv6地址,以及在所述交换设备上分配IPv6地址段;节点地址配置模块,用于从所述IPv6地址段中,为所述集群中的一个或多个节点分配各自的节点地址段,所述节点地址段用于为所述节点中的Pod提供Pod地址;网桥创建模块,用于在所述节点上创建网桥,使得所述节点的物理网卡和所述节点中的每个所述Pod的VethPair的一端桥接。在另一些方面,进一步包括:服务地址配置模块,用于从所述IPv6地址段中,为所述集群中的一个或多个服务分配各自的IPv6地址,以作为服务IP地址,以及根据服务IP地址生成对应的服务IPv4地址;服务网关配置模块,用于从所述IPv6地址段中,为所述集群的多个服务网关分配各自的IPv6地址,以作为服务网关地址。在另一些方面,进一步包括:经由所述服务网关,向所述交换设备宣告所述服务IPv4地址、所述服务IP地址和与所述服务对应的一个或多个所述Pod地址;经由所述服务网关,在所述服务IP地址和与所述服务对应的一个或多个所述Pod地址之间进行数据通信。还有一些方面,提供一种存储介质,所述存储介质具有存储在其中的指令,当所述指令被执行时,使得处理器执行集群网络通信方法,所述集群网络通信方法包括:为集群中的多个交换设备中配置所述交换设备各自的IPv6地址,以及在所述交换设备上分配IPv6地址段;从所述IPv6地址段中,为所述集群中的一个或多个节点分配各自的节点地址段,所述节点地址段用于为所述节点中的Pod提供Pod地址;在所述节点上创建网桥,使得所述节点的物理网卡和所述节点中的每个所述Pod的VethPair的一端桥接。还有一些方面,提供一种设备,包括存储器,存储有计算机可执行指令,处理器,所述处理器被配置为执行所述指令以实施集群网络通信方法,所述集群网络通信方法包括:为集群中的多个交换设备中配置所述交换设备各自的IPv6地址,以及在所述交换设备上分配IPv6地址段;从所述IPv6地址段中,为所述集群中的一个或多个节点分配各自的节点地址段,所述节点地址段用于为所述节点中的Pod提供Pod地址;在所述节点上创建网桥,使得所述节点的物理网卡和所述节点中的每个所述Pod的VethPair的一端桥接。本申请的实施方式与现有技术相比,主要区别及其效果在于:本申请的实施方式,在Kubernetes架构中使用IPv6,由于IPv6提供了巨大的地址空间,彻底解决了容器地址空间不够用的问题。同一个接入交换机下的节点和容器,处于同一个L2层网络,对于接入交换机来说是对等的。通过给每个节点事先分配一个IP地址段的方式,免去了对Overlay网络(相对复杂,影响可靠性,效率比IPv6低一些)、BGP或其它路由协议、NAT网络的使用。另外,不需要在节点上运行代理,具有高性能和高稳定性。在Kubernetes集群中都有服务网关,通过进行BGP宣告实现ECMP(Equal-costmulti-pathrouting),这样实现了能在Kuber本文档来自技高网
...

【技术保护点】
1.一种集群网络通信方法,其特征在于,包括:为集群中的多个交换设备中配置所述交换设备各自的IPv6地址,以及在所述交换设备上分配IPv6地址段;从所述IPv6地址段中,为所述集群中的一个或多个节点分配各自的节点地址段,所述节点地址段用于为所述节点中的Pod提供Pod地址;在所述节点上创建网桥,使得所述节点的物理网卡和所述节点中的每个所述Pod的Veth Pair的一端桥接。

【技术特征摘要】
1.一种集群网络通信方法,其特征在于,包括:为集群中的多个交换设备中配置所述交换设备各自的IPv6地址,以及在所述交换设备上分配IPv6地址段;从所述IPv6地址段中,为所述集群中的一个或多个节点分配各自的节点地址段,所述节点地址段用于为所述节点中的Pod提供Pod地址;在所述节点上创建网桥,使得所述节点的物理网卡和所述节点中的每个所述Pod的VethPair的一端桥接。2.根据权利要求1所述的集群网络通信方法,其特征在于,所述方法还包括:从所述IPv6地址段中,为所述集群中的一个或多个服务分配各自的IPv6地址,以作为服务IP地址,以及根据服务IP地址生成对应的服务IPv4地址;从所述IPv6地址段中,为所述集群的多个服务网关分配各自的IPv6地址,以作为服务网关地址。3.根据权利要求2所述的集群网络通信方法,其特征在于,所述方法还包括:经由所述服务网关,向所述交换设备宣告所述服务IPv4地址、所述服务IP地址和与所述服务对应的一个或多个所述Pod地址;经由所述服务网关,在所述服务IP地址和与所述服务对应的一个或多个所述Pod地址之间进行数据通信。4.一种集群网络通信装置,其特征在于,包括:交换设备配置模块,用于为集群中的多个交换设备中配置所述交换设备各自的IPv6地址,以及在所述交换设备上分配IPv6地址段;节点地址配置模块,用于从所述IPv6地址段中,为所述集群中的一个或多个节点分配各自的节点地址段,所述节点地址段用于为所述节点中的Pod提供Pod地址;网桥创建模块,用于在所述节点上创建网桥,使得所述节点的物理网卡和所述节点中的每个所述Pod的VethPair的一端桥接。5.根据权利要求4所述的集群网络通信装置,其特征在于,所述集群网络通信装置进一步包括:服务地址配...

【专利技术属性】
技术研发人员:高鹏张苗磊叶理灯
申请(专利权)人:优刻得科技股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1