一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据传输方法、装置、设备以及存储介质与流程

2022-03-09 00:10:47 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种数据传输方法、装置、设备以及存储介质。


背景技术:

2.容器云提供了虚拟化的开发运行测试环境,在容器云的各种体系中,kubernetes(简称k8s)是目前被各个企业普遍使用的容器云体系,k8s主要用于对容器化的应用进行部署、规划、更新及维护。
3.所谓容器化的应用,即每个应用可以被打包成一个容器镜像进行容器化安装并使用。但是,k8s并不直接运行容器化应用,在k8s中可以包括有多个k8s集群,每个k8s集群中可以包括有多个节点(简称为node),每个节点中可以包括有多个称为pod的高级结构。pod是k8s集群的基本计算单元,每个pod中封装有一个或多个容器化应用。因此,在每个k8s集群内,相同pod中的任何容器化应用都将共享相同的名称空间和集群网络,k8s集群内部可以通过ingress或者gateway等保护机制访问该k8s集群内任意一个pod的服务或应用。
4.上述应用中,k8s集群通过上述保护机制可以有效保护应用的访问权限,极大提升了安全性,但同时由于上述保护机制,不同k8s集群之间是相对隔离的,这就导致不同k8s集群之间无法进行应用访问、数据传输。


技术实现要素:

5.本公开提供一种数据传输方法、装置、设备以及存储介质,以至少解决相关技术中,不同k8s集群之间无法进行应用访问、数据传输的技术问题。本公开的技术方案如下:
6.根据本公开实施例的第一方面,提供一种数据传输方法,包括:获取第一数据包,并根据第一数据包中的目标地址,基于预先配置的路由规则确定第一节点的网卡中与目标地址对应的第一网卡;目标地址为第二节点中的任意地址,第二节点与第一节点归属于不同的集群;生成包括第一数据包的第二数据包,并通过第一网卡向第二节点发送第二数据包,以使得第二节点解封装第二数据包,以得到第一数据包并向目标地址发送第一数据包。
7.可选的是,上述路由规则包括多个子网段以及与每个子网段对应的网卡信息;根据第一数据包中的目标地址,基于预先配置的路由规则确定第一节点的网卡中与目标地址对应的第一网卡,包括:从多个子网段中确定目标地址所在的目标子网段;从路由规则中确定与目标子网段对应的第一网卡信息,并从第一网卡信息中确定第一网卡。
8.可选的,上述生成包括第一数据包的第二数据包,包括:向第一网卡发送第一数据包,以使得第一网卡根据第一网卡的地址对第一数据包封装,以得到第二数据包;第二数据包还包括第一网卡的地址。
9.可选的,上述方法还包括:获取第一节点的物理地址、第二节点的物理地址以及第二节点对应的子网段;基于第一节点的物理地址以及第二节点的物理地址确定第一网卡,生成第一网卡的地址,并根据第一网卡的地址以及第二节点对应的子网段,配置路由规则。
10.可选的,上述获取第一节点的物理地址、第二节点的物理地址以及第二节点的子网段,包括:接收第二节点所在的集群发送的广播消息,并从广播消息中获取第二节点的物理地址以及第二节点的子网段。
11.可选的,上述基于第一节点的物理地址以及第二节点的物理地址,生成第一网卡的地址,包括:根据第一节点的物理地址以及第二节点的物理地址,在第一节点与第二节点之间建立传输隧道;确定传输隧道中位于第一节点侧的网卡为第一网卡,并为第一网卡配置地址。
12.可选的,上述方法还包括:接收第三节点发送的第三数据包,并解封装第三数据包以获取第三网卡的地址;第三网卡为第三节点中发送第三数据包的网卡;第三节点与第一节点归属于不同的集群;根据第三网卡的地址,确定第三网卡所在的网段,并从路由规则中确定与第三网卡所在的网段对应的第二网卡信息,并从第二网卡信息中确定第一节点的第四网卡;通过第四网卡向第三节点发送第三数据包的响应数据包。
13.可选的,上述第一集群为第一节点所在的集群;方法还包括:响应于除第一集群之外的其他集群发送的预设广播消息,从预设广播消息中获取其他集群中有更新的节点的物理地址以及子网段;基于第一节点的物理地址与其他集群中有更新的节点的物理地址,确定目标网卡的地址,目标网卡为第一节点向其他集群中有更新的节点发送数据包的网卡;基于目标网卡的地址以及其他集群中有更新的节点的子网段,更新路由规则。
14.根据本公开实施例的第二方面,提供一种数据传输装置,应用于第一节点,包括包括获取单元、确定单元、生成单元以及发送单元;获取单元,用于获取第一数据包;确定单元,用于根据第一数据包中的目标地址,基于预先配置的路由规则确定第一节点的网卡中与目标地址对应的第一网卡;目标地址为第二节点中的任意地址,第二节点与第一节点归属于不同的集群;生成单元,用于生成包括第一数据包的第二数据包;发送单元,用于通过第一网卡向第二节点发送第二数据包,以使得第二节点解封装第二数据包,以得到第一数据包并向目标地址发送第一数据包。
15.可选的,上述路由规则包括多个子网段以及与每个子网段对应的网卡信息;确定单元具体用于:从多个子网段中确定目标地址所在的目标子网段;从路由规则中确定与目标子网段对应的第一网卡信息,并从第一网卡信息中确定第一网卡。
16.可选的,上述生成单元具体用于:向第一网卡发送第一数据包,以使得第一网卡根据第一网卡的地址对第一数据包封装,以得到第二数据包;第二数据包还包括第一网卡的地址。
17.可选的,上述数据传输装置还包括配置单元;获取单元,用于获取第一节点的物理地址、第二节点的物理地址以及第二节点对应的子网段;生成单元,还用于基于第一节点的物理地址以及第二节点的物理地址确定第一网卡,生成第一网卡的地址;配置单元,用于根据第一网卡的地址以及第二节点对应的子网段,配置路由规则。
18.可选的,上述获取单元,具体用于:接收第二节点所在的集群发送的广播消息,并从广播消息中获取第二节点的物理地址以及第二节点的子网段。
19.可选的,上述生成单元具体用于:根据第一节点的物理地址以及第二节点的物理地址,在第一节点与第二节点之间建立传输隧道;确定传输隧道中位于第一节点侧的网卡为第一网卡,并为第一网卡配置地址。
20.可选的,上述数据传输装置还包括接收单元;接收单元,用于接收第三节点发送的第三数据包;获取单元,还用于解封装第三数据包以获取第三网卡的地址;第三网卡为第三节点中发送第三数据包的网卡;第三节点与第一节点归属于不同的集群;
21.确定单元,还用于根据第三网卡的地址,确定第三网卡所在的网段,并从路由规则中确定与第三网卡所在的网段对应的第二网卡信息,并从第二网卡信息中确定第一节点的第四网卡;发送单元,还用于通过第四网卡向第三节点发送第三数据包的响应数据包。
22.可选的,上述第一集群为第一节点所在的集群;数据传输装置还包括更新单元;获取单元,还用于响应于除第一集群之外的其他集群发送的预设广播消息,从预设广播消息中获取其他集群中有更新的节点的物理地址以及子网段;确定单元,还用于基于第一节点的物理地址与其他集群中有更新的节点的物理地址,确定目标网卡的地址,目标网卡为第一节点向其他集群中有更新的节点发送数据包的网卡;更新单元,用于基于目标网卡的地址以及其他集群中有更新的节点的子网段,更新路由规则。
23.根据本公开实施例的第三方面,提供一种节点设备,包括:处理器、用于存储处理器可执行的指令的存储器;其中,处理器被配置为执行指令,以实现如第一方面及其任一种可能的设计方式所提供的数据传输方法。
24.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由节点设备的处理器执行时,使得节点设备能够执行如第一方面及其任一种可能的设计方式所提供的数据传输方法。
25.根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在节点设备上运行时,使得该节点设备执行如第一方面及其任一种可能的设计方式所提供的数据传输方法。
26.本公开提供的技术方案至少带来以下有益效果:通过上述技术方案,不同集群中任意两个节点的任意pod,都可以通过查询节点中的路由规则,确定目标pod的目标地址所对应的网卡,进而可以通过确定到的网卡向外发送数据包。相较于现有技术,能够在任意两个集群之间实现数据的传输。同时,由于通过在节点中预先配置有路由规则,无需对现有的k8s安全机制做任何改变,同时还能保证k8s集群内部的独立安全。
27.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
28.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
29.图1是根据一示例性实施例示出的一种多数据传输系统的结构示意图;
30.图2是根据一示例性实施例示出的一种数据传输方法的流程示意图之一;
31.图3是根据一示例性实施例示出的一种数据传输方法的流程示意图之二;
32.图4是根据一示例性实施例示出的一种数据传输方法的流程示意图之三;
33.图5是根据一示例性实施例示出的一种数据传输方法的流程示意图之四;
34.图6是根据一示例性实施例示出的一种数据传输方法的流程示意图之五;
35.图7是根据一示例性实施例示出的一种数据传输方法的流程示意图之六;
36.图8是根据一示例性实施例示出的一种数据传输方法的流程示意图之七;
37.图9是根据一示例性实施例示出的一种数据传输方法的流程示意图之八;
38.图10是根据一示例性实施例示出的一种数据传输装置的结构示意图;
39.图11是根据一示例性实施例示出的一种节点设备的结构示意图。
具体实施方式
40.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
41.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
42.另外,在本公开实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,在本公开实施例的描述中,“多个”是指两个或多于两个。
43.本公开实施例提供的一种数据传输方法可以适用于数据传输系统。图1示出了该数据传输系统的一种结构示意图。如图1所示,数据传输系统10用于解决相关技术中,k8s集群之间无法进行数据传输的问题。数据传输系统10包括至少一个k8s集群(图1示例性的示出了k8s集群11以及k8s集群12,在实际应用过程中,可以存在更多的k8s集群)。k8s集群11包括第一节点111(图1示例性的示出了第一节点111,在实际应用过程中,可以存在更多的节点),k8s集群12包括第二节点121(图1示例性的示出了第二节点121,在实际应用过程中,可以存在更多的节点)。第一节点111与第二节点121连接,第一节点111与第二节点121之间可以采用有线方式连接,也可以采用无线方式连接,本公开实施例对此不作限定。
44.由于不同节点在k8s集群中的功能是相同的,因此本公开实施例以下以第一节点111为例进行说明,
45.第一节点111在实际应用中可以为物理机,第一节点111中存储有其物理地址。第一节点111中包括有多个pod,每个pod都具有各自的网际互连协议(internet protocol,ip)地址。同一个节点中的不同pod的ip地址,位于同一个子网段中。
46.需要说明的,第一节点111中任意一个pod的ip地址,即为第一节点111所在的k8s集群11中的私有地址。
47.在实际应用中,本公开实施例提供的数据传输方法可以应用于任何一个k8s集群中的任意一个节点,也可以应用于任意一个节点中的数据传输装置。以下以数据传输方法应用于第一节点为例,对本公开实施例提供的数据传输方法进行描述。
48.如图2所示,本公开实施例提供的数据传输方法包括下述s201-s204。
49.s201、第一节点获取第一数据包。
50.其中,第一数据包中包括第一节点中源pod的ip地址,以及第二节点中目标pod的
ip地址。源pod即为第一节点中发起请求发送第一数据包的pod。目标pod即为第二节点中需要接受第一数据包的pod。
51.作为一种可能的实现方式,第一节点中的源pod在生成第一数据包之后,向第一节点发送第一数据包,相应的,第一节点接收源pod发送的第一数据包。
52.s202、第一节点根据第一数据包中的目标地址,从预先配置的路由规则中确定第一节点的网卡中与目标地址对应的第一网卡。
53.其中,路由规则用于指示第一节点与其他节点之间传输数据包所经过的网卡。目标地址即为第二节点中目标pod的ip地址。路由规则包括第一路由。第一路由用于指示第一节点中不同网卡与其他节点的子网段之间的映射关系。目标地址为第二节点中的任意地址,第二节点与第一节点归属于不同的集群。
54.作为一种可能的实现方式,第一节点从第一数据包中获取目标pod的ip地址作为目标地址,并根据目标地址,从路由规则中查询与目标地址所在的目标子网段对应的网卡,作为第一节点的网卡中与目标地址对应的第一网卡。
55.需要说明的,路由规则可以位于第一节点的存储装置中。第一节点中可以存在多个网卡,本公开是实施例中涉及的网卡,可以为第一节点中的虚拟网卡,也可以为第一节点中的物理网卡,本公开实施例对此不作限定。
56.此步骤的具体实现方式,可以参照本公开实施例的后续描述,此处不再进行赘述。
57.s203、第一节点生成包括第一数据包的第二数据包。
58.其中,第二数据包包括第一数据包以及第一网卡的地址,第二数据包用于使得第二节点解封装第二数据包,以得到第一数据包并向目标地址发送第一数据包。第二节点为目标地址对应的目标pod所在的节点,且第二节点与第一节点不属于同一个k8s集群。
59.作为一种可能的实现方式,第一节点根据第一网卡的地址,封装第一数据包,以得到第二数据包。
60.需要说明的,在第二数据包中,第一网卡的地址可以位于第二数据包最外层的协议栈中。
61.s204、第一节点通过第一网卡,向第二节点发送第二数据包。
62.作为一种可能的实现方式,第一节点通过第一网卡,以及第一节点与第二节点之间预设的传输隧道,向第二节点的第二网卡发送第二数据包。
63.需要说明的,第一节点与第二节点之间预设的传输隧道的两端分别为第一节点的第一网卡,以及第二节点的第二网卡。第二数据包经过传输隧道之后,会首先到达第二网卡,再由第二网卡将第二数据包转发至第二节点。
64.可以理解的,第二节点在通过第二网卡接收到第二数据包之后,对第二数据包进行解封装,以得到第一数据包,并进一步根据第一数据包的目标地址,向目标地址对应的目标pod发送第一数据包。
65.本公开提供的技术方案至少带来以下有益效果:通过上述技术方案,不同集群中任意两个节点的任意pod,都可以通过查询节点中的路由规则,确定目标pod的目标地址所对应的网卡,进而可以通过确定到的网卡向外发送数据包。相较于现有技术,能够在任意两个集群之间实现数据的传输。同时,由于通过在节点中预先配置有路由规则,无需对现有的k8s安全机制做任何改变,同时还能保证k8s集群内部的独立安全。
66.在一种设计中,本公开实施例提供的路由规则中包括多个子网段以及与每个子网段对应的网卡信息。在这种情况下,如图3所示,本公开实施例提供的s202包括下述s2021-s2022。
67.s2021、第一节点从多个子网段中确定目标地址所在的目标子网段。
68.作为一种可能的实现方式,第一节点从路由规则中获取第一路由,并从第一路由中确定多个子网段。进一步的,第一节点根据目标地址,从多个子网段中确定目标地址所在的目标子网段。
69.示例性的,以目标地址为192.168.57.200为例,则目标地址所在的子网段可以为192.168.57.192/26。
70.s2022、第一节点从路由规则中确定与目标子网段对应的第一网卡信息。
71.其中,第一网卡信息包括网卡第一网卡的标识以及第一网卡的地址。
72.作为一种可能的实现方式,第一节点在确定目标子网段之后,从路由规则中确定与目标子网段对应的网卡信息为第一网卡信息。
73.s2023、第一节点从第一网卡信息中确定第一网卡。
74.作为一种可能的实现方式,第一节点在确定第一网卡信息之后,基于第一网卡信息中的网卡标识或者网卡地址,确定第一网卡。
75.本公开提供的技术方案至少带来以下有益效果:通过从路由规则中查询第一网卡信息,能够在第一节点中确定与第二节点进行数据传输的网卡,进一步为后续的发送提供了一种具体的实现方式。
76.在一种设计中,为了能够向外发送第二数据包,如图4所示,本公开实施例提供的s203,具体可以包括下述s2031。
77.s2031、第一节点向第一网卡发送第一数据包,以使得第一网卡根据第一网卡的地址对第一数据包封装,以得到第二数据包。
78.其中,第二数据包还包括第一网卡的地址。
79.作为一种可能的实现方式,第一节点将第一数据包发送至第一网卡。相应的,第一网卡在接收到第一数据包之后,根据第一网卡的地址封装第二数据包,以得到第二数据包。
80.本公开提供的技术方案至少带来以下有益效果:通过第一网卡对第一数据包进行封装,能够提供一种封装得到第二数据包的实现方式。
81.在一种设计中,为了能够预先在第一节点中配置路由规则,如图5所示,本公开实施例提供的数据传输方法,还包括下述s205-s207。
82.s205、第一节点获取第一节点的物理地址、第二节点的物理地址以及第二节点对应的子网段。
83.其中,第二节点对应的子网段,为第二节点中所有的pod所在的子网段。
84.作为一种可能的实现方式,第一节点可以从第一节点的存储装置中获取第一节点的物理地址、第二节点的物理地址以及第二节点对应的子网段。
85.需要说明的,第一节点的物理地址、第二节点的物理地址以及第二节点对应的子网段可以由运维人员预先在第一节点中设置。
86.此步骤的具体实现方式,还可以参照本公开实施例的后续描述,此处不再进行赘述。
87.s206、第一节点基于第一节点的物理地址以及第二节点的物理地址,生成第一网卡的地址。
88.作为一种可能的实现方式,第一节点根据第一节点的物理地址以及第二节点的物理地址,生成第一节点与第二节点之间的传输隧道,并为生成的传输隧道配置相应的网卡及网卡地址。进一步的,第一节点确定传输隧道在第一节点侧的网卡为第一网卡,传输隧道在第二节点侧的网卡地址为第二网卡的地址。
89.此步骤的具体实现方式,可以参照本公开实施例的后续描述,此处不再进行赘述。
90.s207、第一节点根据第一网卡的地址以及第二节点对应的子网段,配置路由规则。
91.作为一种可能的实现方式,第一节点根据第一网卡的标识、第一网卡的地址以及第二节点对应的子网段,生成第一路由,并将第一路由添加至路由规则中。
92.示例性的,第一节点可以通过以下代码生成第一路由:ip route add 192.168.57.192/26via 10.1.1.1dev n1ton2。其中,192.168.57.192/26为第二节点对应的子网段,10.1.1.1为第一网卡的网址,n1ton2为第一网卡的地址。
93.需要说明,本公开实施例中第一节点在执行上述s205-s207的过程中,第二节点相应也执行上述步骤,不同之处在于,第二节点配置的为第二节点中的路由规则。
94.本公开提供的技术方案至少带来以下有益效果:通过为第一网卡配置地址,能够进一步的配置路由规则,可以后续在需要发送第一数据包时,能够从第一节点的多个网卡中确定第一网卡。
95.在一种设计中,随着集群数量的增加,以及每个集群中节点数量的增加,为了能够实现k8s的自动化的配置涉及第二节点的路由规则配置,如图6所示,本公开实施例提供的s205,还可以包括下述s2051-s2052。
96.s2051、第一节点接收第二节点所在的集群发送的广播消息。
97.其中,第二节点所在的集群与第一节点所在的集群不同。
98.作为一种可能的实现方式,第一节点监听k8s集群的广播消息,并接收第二节点所在的集群发送的广播消息。
99.需要说明的,k8s中每个k8s集群任意一个节点上线之后,该k8s集群的主控节点(master)都根据该任意一个节点的物理地址以及该节点的子网段,生成广播消息,并进行广播。主控节点用于管理k8s集群中的节点。
100.s2052、第一节点从广播消息中获取第二节点的物理地址以及第二节点的子网段。
101.作为一种可能的实现方式,第一节点在接收到广播消息之后,解析广播消息,并从广播消息中获取第二节点的物理地址以及第二节点的子网段。
102.需要说明,本公开实施例中第一节点在执行上述s2051-s2052的过程中,第二节点相应也执行上述步骤,不同之处在于,第一节点获取到的为除第二节点之外的其他节点的物理地址以及子网段。
103.本公开提供的技术方案至少带来以下有益效果:随着集群数量的增加,以及每个集群中节点数量的增加,在第二节点上线后,通过广播消息广播其物理地址以及子网段,能够使接收到广播消息的节点自动配置路由规则,实现了k8s中自动化的路由规则配置。
104.在一种设计中,在配置路由规则的过程中,为了能够生成第一网卡的地址,如图7所示,本公开实施例提供的s206,具体可以包括下述s2061-s2063。
105.s2061、第一节点根据第一节点的物理地址以及第二节点的物理地址,在第一节点与第二节点之间建立传输隧道。
106.作为一种可能的实现方式,第一节点启用传输隧道的内核模块,并根据第一节点的物理地址以及第二节点的物理地址,在第一节点与第二节点之间建立传输隧道。
107.作为一种示例,第一节点与第二节点之间的传输隧道可以为通用路由封装(general routing encapsulation,gre)隧道。在这种情况下,第一节点可以通过以下代码启用gre隧道的内核模块:modprobe ip_gre。进一步示例性的,第一节点可以通过以下代码在第一节点与第二节点之间建立传输隧道:ip tunnel add n1ton2 mode gre local 172.29.33.201remote 172.29.32.101。其中,n1ton2为第一网卡的标识,172.29.33.201为第一节点的物理地址,172.29.32.101为第二节点的物理地址。
108.s2062、第一节点确定传输隧道中位于第一节点侧的网卡为第一网卡。
109.作为一种可能的实现方式,在建立传输隧道的过程中,第一节点确定传输隧道的两端中,位于第一节点侧的网卡为第一网卡。
110.需要说明的,第一网卡的标识可以由第一节点自行设置,也可以由运维人员预先在第一节点中设置。
111.s2063、第一节点为第一网卡配置地址。
112.示例性的,第一节点可以通过以下代码为第一网卡匹配地址:ifconfig n1ton2 10.1.1.1。其中,n1ton2为第一网卡的标识,10.1.1.1为第一网卡的地址。
113.需要说明,本公开实施例中第一节点在执行上述s2061-s2063的过程中,第二节点相应也执行上述s2061-s2063中相应的步骤,不同之处在于,第二节点中配置的为第二节点中第二网卡的地址。
114.本公开提供的技术方案至少带来以下有益效果:第一节点能够与第二节点在基于物理连接的接触上,在第一节点与第二节点之间建立gre隧道,并进一步的为gre隧道配置相应的第一网卡,进而能够提供一种后续配置路由规则的实现方式。
115.在一种设计中,第一节点在接收到其他节点发送的数据包之后,为了能够返回相应的响应数据包,如图8所示,本公开实施例提供的数据传输方法,还包括下述s208-s210。
116.s208、第一节点接收第三节点发送的第三数据包。
117.其中,第三节点为除第一节点之外的,且与第一节点不属于同一k8s集群的节点。第三数据包为第三节点根据第三节点的第三网卡封装得到的第三数据包。第三网卡为第三节点中发送第三数据包的网卡。
118.作为一种可能的实现方式,第三节点在需要向第一节点发送第四数据包的情况下,确定第三节点中与第四数据包中的目标地址对应的第三网卡,并根据第三网卡的地址对第四数据包进行封装,以得到第三数据包,并通过第三网卡向第一节点发送第三数据包。
119.其中,第三数据包中包括第三网卡的地址,以及第四数据包。
120.此步骤的具体实施方式可以参照本公开上述s201-s204的具体实现方式,此处不再进行赘述,不同之处在于执行主体以及发送的数据包不同。
121.相应的,第一节点接收第三节点通过第三节点的第三网卡发送的第三数据包。
122.s209、第一节点解封装第三数据包,以获取第三网卡的地址。
123.其中,第三网卡为第三节点发送第三数据包的网卡。
124.作为一种可能的实现方式,第一节点对第三数据包进行解封装,以得到第四数据包以及第三网卡的地址。
125.在一些情况下,第一节点在获取到第四数据包之后,可以根据第四数据包中的目标地址,向第一节点中目标地址对应的pod发送第四数据包。
126.s210、第一节点根据第三网卡的地址,确定第三网卡所在的网段,并从路由规则中确定第三网卡所在的网段对应的第二网卡信息,并从第二网卡信息中确定第一节点的第四网卡。
127.其中,第四网卡用于向第三节点发送第三数据包的响应数据包。
128.作为一种可能的实现方式,第一节点根据获取到的第三网卡的地址,从第一节点的路由规则中确定第三网卡所在的网段,并根据第三网卡所在的网段,从第一节点的路由规则中查询第三网卡所在的网段对应的第二网卡信息。进一步的,第一节点可以从第二网卡信息中确定第一节点的第四网卡的地址。
129.s211、第一节点通过第四网卡向第三节点发送第三数据包的响应数据包。
130.后续的,第一节点在生成响应数据包之后,还根据第四网卡的地址以及响应数据包,通过第四网卡以及第一节点与第三节点之间的传输隧道,向第三节点发送封装后的响应数据包。
131.此步骤的具体实现方式,可以参照本公开实施例中第一节点通过第一网卡向第二节点发送第二数据包的过程,此处不再进行赘述。不同之处在于,发送的数据包不同,以及发送数据包通过的网卡不同。
132.需要说明的,第一节点的路由规则中还包括第二路由,第二路由用于指示第一节点中的网卡与其他节点中的网卡地址所在的网段之间的映射关系。一条第二路由中包括一个第一节点的网卡,以及该网卡对应的其他节点中的网卡所在的网段。
133.进一步的,为了使得第一节点中的路由规则包括第二路由,第一节点在接收广播消息的过程中,广播消息中还包括其他节点的网卡所在的网段。进一步的,第一节点在接收到第三节点所在的k8s集群发送的广播消息之后,从广播消息中获取第三节点的网卡所在的网段,并根据第一节点中第四网卡的标识、第四网卡的地址以及第三节点的网卡所在的网段,配置第一节点中的第二路由。
134.以下示例性的示出了第一节点配置第二路由的代码:ip route add 10.2.1.0/24via10.1.1.1dev n1ton3。其中,10.2.1.0/24为第三节点的网卡所在的网段,n1ton3为第三网卡的标识,10.1.1.1为第四网卡的地址。
135.需要说明的,第一节点与第三节点之间同样预先建立由gre隧道,且该gre隧道的两端分别为第一节点的第四网卡以及第三节点的第三网卡。进一步的,第一节点还为第四网卡分配地址。此步骤中第一节点建立gre隧道以及为第四网卡分配地址的具体实施方式,可以参照本公开实施例上述s2061-s2063中的具体实现方式,此处不再进行赘述,不同之处在于建立的gre隧道不同,以及配置的网卡不同。
136.本公开提供的技术方案至少带来以下有益效果:第一节点在接收到第三节点发送的数据包之后,能够基于数据包中第三节点的第三网卡的地址,从路由规则中确定需要从第四网卡中返回响应消息。相较于现有技术,能够实现跨集群的任意两个节点之间数据的往返。
137.在一种设计中,随着不同集群的数量增加,为了能够使归属于不同集群的任意两个新增的节点之间能够相互传输数据,如图9所示,本公开实施例提供的数据传输方法,还包括下述s301-s303。
138.s301、第一节点响应于除第一集群之外的其他集群发送的预设广播消息,从预设广播消息中获取其他集群中有更新的节点的物理地址以及子网段。
139.其中,第一集群为第一节点所在的集群。
140.作为一种可能的是现房还是,第一节点在接收到其他集群发送的预设广播消息之后,从预设广播消息中获取其他集群中更新后的节点的物理地址以及更新后的节点的子网段。
141.s302、第一节点基于第一节点的物理地址与其他集群中有更新的节点的物理地址,确定目标网卡的地址。
142.其中,目标网卡为第一节点向其他集群中有更新的节点发送数据包的网卡。
143.作为一种可能的实现方式,第一节点基于更新后节点的物理地址以及第一节点的物理地址,确定目标网卡的地址。
144.此过程的具体实施方式,可以参照本公开上述s2061-s2063,此处不再进行赘述。
145.s303、第一节点基于目标网卡的地址以及其他集群中有更新的节点的子网段,更新路由规则。
146.作为一种可能的实现方式,第一节点基于目标网卡的地址以及其他集群中有更新的节点的子网段,生成目标路由,并将生成的目标路由更新至路由规则中。
147.本公开提供的技术方案至少带来以下有益效果:采用上述预设广播消息,能够使归属于不同集群的任意两个新增的节点之间生成目标路由,并更新节点中的路由规则,进而可以确保新增的节点之间可以灵活传输数据。
148.图10是根据一示例性实施例示出的一种数据传输装置的结构示意图。参照图10所示,本公开实施例提供的数据传输装置40,应用于第一节点,包括获取单元401、确定单元402、生成单元403以及发送单元404。
149.获取单元401,用于获取第一数据包。
150.确定单元402,用于根据第一数据包中的目标地址,基于预先配置的路由规则确定第一节点的网卡中与目标地址对应的第一网卡。目标地址为第二节点中的任意地址,第二节点与第一节点归属于不同的集群。
151.生成单元403,用于生成包括第一数据包的第二数据包。
152.发送单元404,用于通过第一网卡向第二节点发送第二数据包,以使得第二节点解封装第二数据包,以得到第一数据包并向目标地址发送第一数据包。
153.可选的,如图10所示,本公开实施例提供的数据传输装置40中,路由规则包括多个子网段以及与每个子网段对应的网卡信息。确定单元402具体用于:
154.从多个子网段中确定目标地址所在的目标子网段。
155.从路由规则中确定与目标子网段对应的第一网卡信息,并从第一网卡信息中确定第一网卡。
156.可选的,如图10所示,本公开实施例提供的生成单元403具体用于:
157.向第一网卡发送第一数据包,以使得第一网卡根据第一网卡的地址对第一数据包
封装,以得到第二数据包。第二数据包还包括第一网卡的地址。
158.可选的,如图10所示,本公开实施例提供的数据传输装置还包括配置单元405。
159.获取单元401,用于获取第一节点的物理地址、第二节点的物理地址以及第二节点对应的子网段。
160.生成单元403,还用于基于第一节点的物理地址以及第二节点的物理地址确定第一网卡,生成第一网卡的地址。
161.配置单元405,用于根据第一网卡的地址以及第二节点对应的子网段,配置路由规则。
162.可选的,如图10所示,本公开实施例提供的获取单元401,具体用于:
163.接收第二节点所在的集群发送的广播消息,并从广播消息中获取第二节点的物理地址以及第二节点的子网段。
164.可选的,如图10所示,本公开实施例提供的生成单元403具体用于:
165.根据第一节点的物理地址以及第二节点的物理地址,在第一节点与第二节点之间建立传输隧道。
166.确定传输隧道中位于第一节点侧的网卡为第一网卡,并为第一网卡配置地址。
167.可选的,如图10所示,本公开实施例提供的数据传输装置还包括接收单元406。
168.接收单元406,用于接收第三节点发送的第三数据包。
169.获取单元401,还用于解封装第三数据包以获取第三网卡的地址。第三网卡为第三节点中发送第三数据包的网卡。第三节点与第一节点归属于不同的集群。
170.确定单元402,还用于根据第三网卡的地址,确定第三网卡所在的网段,并从路由规则中确定与第三网卡所在的网段对应的第二网卡信息,并从第二网卡信息中确定第一节点的第四网卡。
171.发送单元404,还用于通过第四网卡向第三节点发送第三数据包的响应数据包。
172.可选的,如图10所示,本公开实施例提供的第一集群为第一节点所在的集群。数据传输装置40还包括更新单元407。
173.获取单元401,还用于响应于除第一集群之外的其他集群发送的预设广播消息,从预设广播消息中获取其他集群中有更新的节点的物理地址以及子网段。
174.确定单元402,还用于基于第一节点的物理地址与其他集群中有更新的节点的物理地址,确定目标网卡的地址,目标网卡为第一节点向其他集群中有更新的节点发送数据包的网卡。
175.更新单元407,用于基于目标网卡的地址以及其他集群中有更新的节点的子网段,更新路由规则。
176.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
177.图11是本公开提供的一种节点设备的结构示意图。该节点设备可以为上述第一节点或者第二节点。如图11,该节点设备50可以包括至少一个处理器501以及用于存储处理器可执行指令的存储器503。其中,处理器501被配置为执行存储器503中的指令,以实现上述实施例中的数据传输方法。
178.另外,节点设备50还可以包括通信总线502以及至少一个通信接口504。
179.处理器501可以是一个处理器(central processing units,cpu),微处理单元,asic,或一个或多个用于控制本公开方案程序执行的集成电路。
180.通信总线502可包括一通路,在上述组件之间传送信息。
181.通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。
182.存储器503可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
183.其中,存储器503用于存储执行本公开方案的指令,并由处理器501来控制执行。处理器501用于执行存储器503中存储的指令,从而实现本公开方法中的功能。
184.作为一个示例,结合图10,数据传输装置40中的获取单元401、确定单元402、生成单元403、发送单元404、配置单元405、接收单元406以及更新单元407实现的功能与图11中的处理器501的功能相同。
185.在具体实现中,作为一种实施例,处理器501可以包括一个或多个cpu,例如图11中的cpu0和cpu1。
186.在具体实现中,作为一种实施例,节点设备50可以包括多个处理器,例如图11中的处理器501和处理器507。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
187.在具体实现中,作为一种实施例,节点设备50还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备505可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备,阴极射线管(cathode ray tube,crt)显示设备,或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备506可以是鼠标、键盘、触摸屏设备或传感设备等。
188.本领域技术人员可以理解,图11中示出的结构并不构成对节点设备50的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
189.另外,本公开还提供一种计算机可读存储介质,当计算机可读存储介质中的指令由节点设备的处理器执行时,使得节点设备能够执行如上述实施例所提供的数据传输方法。
190.另外,本公开还提供一种计算机程序产品,包括计算机指令,当计算机指令在节点设备上运行时,使得节点设备执行如上述实施例所提供的数据传输方法。
191.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献