CN112637037A - 跨地域容器通讯系统、方法、存储介质及计算机设备 - Google Patents
跨地域容器通讯系统、方法、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN112637037A CN112637037A CN202110261585.2A CN202110261585A CN112637037A CN 112637037 A CN112637037 A CN 112637037A CN 202110261585 A CN202110261585 A CN 202110261585A CN 112637037 A CN112637037 A CN 112637037A
- Authority
- CN
- China
- Prior art keywords
- address
- container
- virtual
- general
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Abstract
本发明公开了一种跨地域容器通讯系统、方法、存储介质及计算机设备,该系统包括多个一般节点,多个一般节点部署在不同的地域,还包括:配置模块和地址数据库,配置模块用于将所述多个一般节点加入同一个集群系统,并完成网络配置形成地址数据库;任一个一般节点在集群系统发送通讯报文时,按照地址数据库对通讯报文进行装载报文并转发;任一个一般节点在集群系统接收通讯报文时,按照地址数据库对通讯报文进行解析报文并转发。不同地域的容器之间在进行通讯时利用虚拟网络进行转发,而无需依赖底层的网络设备和软件,同时又无需修改网络包的转发路径,同时还不改变任何应用的API,故而不仅对通讯性能没有任何损耗而且更加稳定。
Description
技术领域
本发明涉及通讯领域,尤其涉及一种跨地域容器通讯系统、方法、存储介质及计算机设备。
背景技术
在云原生的环境下,使用类似kubernetes等方案部署集群并基于此管理不同的业务和应用已经成为事实的标准。集群上部署的应用整体上可分为有状态应用和无状态应用。
在有状态应用中,有一种类型的应用对不同一般节点上的容器间通讯提出了更高的要求,这类应用中,一个应用内的多个一般节点会部署在不同的物理地域上。这就导致了,处于不同一般节点上的容器也是跨地域的。典型的案例就是一个应用的两个容器,分别部署在两个跨地域的一般节点上,如一个一般节点在杭州,一个一般节点在北京。这不仅需要集群有调度容器到不同一般节点的能力,同时还要求集群管理平台能够提供相关的网络基础设施,支持运行在两个地域上的一般节点的容器进行网络通讯。
当前,对于集群内一个有状态应用启动在不同地域的一般节点上的容器通讯,大多采用VPN隧道技术或者联邦集群方案。
VPN隧道一方面依赖特定的网络设备和软件,同时不同的一般节点在VPN隧道的通讯,都需要经过一个统一的VPN后端服务器,这样对网络通讯的性能有一定的损耗。
联邦集群的方案,应用的提交需要提交到新的联邦管控控制服务上,这是一套全新的API,在kubernetes集群上,和子集群内的kuberenetes的API是不兼容的,这需要应用修改提交的代码才能适配;另外,两个跨地域的容器的通讯依赖收发端所在的子集群上的转发服务,会经历三个阶段,所以包的容错包括重发、漏发等逻辑都依赖转发服务的容错性,发包链路的加强意味着通讯的不稳定。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种跨地域容器通讯系统、方法、存储介质及计算机设备,旨在解决背景技术中所提到的问题。
为实现上述目的,本发明提供一种跨地域容器通讯系统,包括:
多个一般节点,所述多个一般节点分别部署在不同地域每一个所述一般节点上均部署有属于同一应用的容器,所述系统还包括:第一配置模块,用于收集所述一般节点的第一网络配置信息,并将所述第一网络配置信息存入地址数据库,以将所述一般节点加入同一个集群系统;
部署在任一个一般节点的容器在向部署在跨地域的其他一般节点上的容器发送通讯报文时,基于所述地址数据库对所述通讯报文进行更新和/或转发;
任一个一般节点接收到跨地域的通讯报文时,基于所述地址数据库对所述通讯报文进行解析并转发至所述一般节点上的对应容器。
可选地,所述系统还包括一管控节点,所述第一配置模块部署于任一所述一般节点以形成所述管控节点;
所述管控节点在部署时,将自身的公网地址作为用于将其他一般节点加入所述集群系统的接入地址,并将至少包括所述接入地址的管控配置填入管控信息数据库;
任一所述一般节点在加入所述集群系统时,使用所述管控节点的公网地址作为连接点,包括:
使用自身的公网地址从所述管控信息数据库获取管控配置;
从所述管控配置中获取所述接入地址,以加入所述集群系统。
可选地,每一个一般节点均部署有虚拟网络守护模块,用于将自身所在的一般节点的第一网络配置信息发送至所述管控节点,所述第一网络配置信息至少包括所述一般节点的公网地址、本地地址和网卡信息。
可选地,所述虚拟网络守护模块还用于创建自身的第一虚拟网卡,并基于所述第一虚拟网卡分配一个本地的第一虚拟地址。
可选地,所述虚拟网络守护模块还用于当所述虚拟网络守护模块自身所在一般节点上的容器启动时,为所述容器创建第二虚拟网卡,并基于所述第二虚拟网卡分配一个全局的第二虚拟地址,以及将所述第二虚拟地址路由到第一虚拟网卡上,并创建路由表。
可选地,所述系统还包括第二配置模块,每一个所述一般节点均部署有所述第二配置模块;
所述第二配置模块用于在自身所处的一般节点上的容器启动时,主动将所述第一虚拟地址与所述一般节点的实体网卡的物理地址绑定,更新第二网络配置信息中的地址解析协议ARP表;以及
主动将所述第一虚拟地址与所述一般节点的公网地址绑定,更新所述第二网络配置信息中的转发数据库FDB表;
将所述第二网络配置信息存入所述地址数据库中。
可选地,所述系统还包括第二配置模块,每一个所述一般节点均部署有所述第二配置模块;
所述第二配置模块用于在自身所处的一般节点上的容器启动时,启动网络地址的缓存缺失监听;以及
在所述容器发送通讯报文,监听到ARP的缓存缺失时,被动地将所述第一虚拟地址与所述一般节点的实体网卡的物理地址绑定;以及
监听到FDB的缓存缺失时,被动地将所述第一虚拟地址与所述一般节点的公网地址绑定;以及
将上述绑定关系作为第二网络配置信息,存入所述地址数据库中。
可选地,任一所述一般节点上的容器在发送通讯报文时,通过所述容器的虚拟网卡向自身所在的一般节点上的虚拟网络守护模块的虚拟网卡发送所述通讯报文,所述虚拟网络守护模块的虚拟网卡通过所述地址数据库查找发送端容器和接收端容器所在一般节点的公网地址和物理地址,并将所述公网地址和物理地址装载在所述通讯报文上后向接收端转发。
可选地,任一所述一般节点在接收到跨地域容器发送的通讯报文时,基于所述地址数据库对所述通讯报文进行拆解,并将拆解后的通讯报文基于所述路由表确认接收所述通讯报文的容器的第二虚拟地址,然后路由转进所述容器内。
本发明还提出一种跨地域容器通讯方法,包括:
获取预设的管控配置,将各个跨地域容器所在的一般节点按照所述管控配置加入集群系统;
响应于接收到发送通讯报文的指令,基于预设的地址数据库对所述通讯报文进行更新和/或转发至对应一般节点;
响应于接收到通讯报文,基于所述地址数据库对通讯报文进行解析并转发至对应的容器。
可选地,所述跨地域容器通讯方法还包括:
在任一一般节点部署管控程序以形成管控节点;
所述管控节点在形成时,将自身的公网地址作为用于将其他一般节点加入所述集群系统的接入地址,并将至少包括所述接入地址的管控配置填入管控信息数据库。
可选地,所述跨地域容器通讯方法还包括:任一所述一般节点使用自身的公网地址从所述管控信息数据库获取所述管控配置,并从所述管控配置中获取所述接入地址,以加入所述集群系统。
可选地,所述管控节点还用于获取各个一般节点的第一网络配置信息,所述第一网络配置信息至少包括公网地址、本地地址、和网卡信息。
可选地,所述跨地域容器通讯方法还包括:为全部所述一般节点部署网络守护程序以形成虚拟网络守护模块,并通过所述虚拟网络守护模块为其自身创建第一虚拟网卡,并基于所述第一虚拟网卡分配一个本地的第一虚拟地址。
可选地,所述跨地域容器通讯方法还包括:任一所述一般节点上的容器启动时,通过所述虚拟网络守护模块为自身所在的一般节点上的容器创建第二虚拟网卡,并基于所述第二虚拟网卡分配一个全局的第二虚拟地址,并将所述第二虚拟地址路由到第一虚拟网卡上,并创建路由表。
可选地,所述跨地域容器通讯方法还包括:任一所述一般节点上的容器启动时,
主动将所述第一虚拟地址与所述一般节点的实体网卡的物理地址绑定,并更新第一网络配置信息中的地址解析协议ARP表;以及
主动将所述第一虚拟地址与所述一般节点公网地址绑定,更新所述第一网络配置信息中的转发数据库FDB表;
将所述第一网络配置信息存入所述地址数据库。
可选地,所述跨地域容器通讯方法还包括:任一所述一般节点上的容器启动时,
启动网络地址的缓存缺失监听;以及
在所述容器发送通讯报文,监听到ARP的缓存缺失时,被动地将所述第一虚拟地址与所述一般节点的实体网卡的物理地址绑定;以及
监听到FDB的缓存缺失时,被动地将所述第一虚拟地址与所述一般节点的公网地址绑定;
将上述绑定关系作为第二网络配置信息存入所述地址数据库中。
可选地,所述跨地域容器通讯方法还包括,任一所述一般节点上的容器在发送通讯报文时,通过所述容器的第一虚拟网卡向自身所在的一般节点上的第二虚拟网卡发送所述通讯报文,所述第二虚拟网卡通过所述地址数据库查找发送端容器和接收端容器所在一般节点的公网地址和物理地址,并将所述公网地址和物理地址装载在所述通讯报文上后向接收端转发。
可选地,所述跨地域容器通讯方法还包括:任一所述一般节点在接收到跨地域容器发送的通讯报文时,基于所述地址数据库对所述通讯报文进行拆解,并将拆解后的通讯报文基于所述路由表确认接收所述通讯报文的容器的第二虚拟地址,然后路由转进所述容器内。
本发明还提出一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本发明还提出一种计算机设备,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述的方法。
本发明提出的跨地域容器通讯系统,通过将位于不同地域的一般节点加入到同一个集群系统内,为各个容器创建一个虚拟网络,从而不同地域的容器之间在进行通讯时利用该虚拟网络进行转发,而无需依赖底层的网络设备和软件,又不修改网络包的转发路径,同时还不改变任何应用的API,故而不仅对通讯性能没有任何损耗而且更加稳定。
附图说明
图1是本发明跨地域容器通讯方法的流程示意图;
图2是本发明跨地域容器通讯系统的结构示意图;
图3是本发明一种存储介质的结构示意图;
图4是本发明一种计算机设备的结构示意图。
具体实施方式
本发明提出一种跨地域容器通讯系统,在本实施例中该跨地域容器通讯系统包括多个一般节点,所述多个一般节点分别部署在不同地域,每一个所述一般节点上均部署有属于同一应用的容器,所述系统还包括:第一配置模块,用于收集所述一般节点的第一网络配置信息,并将所述第一网络配置信息存入地址数据库,以将所述一般节点加入同一个集群系统;
部署在任一个一般节点的容器在向部署在跨地域的其他一般节点上的容器发送通讯报文时,基于所述地址数据库对所述通讯报文进行更新和/或转发;
任一个一般节点接收到跨地域的通讯报文时,基于所述地址数据库对所述通讯报文进行解析并转发至所述一般节点上的对应容器。
本发明中的涉及的一般节点具有独立的实体网卡、物理地址,一般节点可以是手机、平板电脑、笔记本电脑等移动终端,还可以是智能电视、PC端等固定终端,一般节点还可以是为一台服务器,一般节点分布在不同的地域,即不在同一个本地网络,无法通过局域网连接,位于不同地域的一般节点上均设有同一应用的容器。
第一配置模块用来收集每个一般节点的公网地址、本地地址以及网卡信息;其中,通过设置一个管控节点来部署第一配置模块,可以将第一配置模块部署于任意一个一般节点上,即可形成该管控节点,如,将第一配置模块部署在一般节点M上,则一般节点M即为成为管控节点,此时第一配置模块可以主动收集一般节点M的第一网络配置信息,或一般节点M主动将自身的第一网络配置信息汇报至第一配置模块,而后第一配置模块再将一般节点M的第一网络配置信息存入地址数据库,则此时一般节点M以加入到基于一般节点M为管控节点的集群系统中,其中第一网络配置信息包括一般节点M的公网地址、本地地址和网卡信息;当其他一般节点通过该管控节点(一般节点M)加入同一个集群系统时,就可以收集其他一般节点的第一网络配置信息并将其存入地址数据库,从而全部跨地域一般节点就加入到同一个集群系统。
管控节点在设置时,利用其自身的公网地址作为用于其他一般节点加入集群系统的接入地址,即将其自己的公网地址作为组装成http或https的接入地址,同时将该接入地址写入管控配置中,然后将管控配置填入管控信息数据库,完成管控节点的部署。
部署完管控节点后,每个跨地域的一般节点通过访问管控信息数据库就可以获取管控节点的管控配置,进而从管控配置中获取管控节点的公网地址,即为加入集群系统的接入地址,继而各个一般节点就可以通过这个接入地址共同加入到同一个集群系统。其中可以通过向管控节点发起http或https请求,进而获取管控节点的管控配置,或者也可以直接向管控节点的管控信息数据库发送查询请求,进而获取管控节点的管控配置;以管控节点在设置时优选将自己的公网地址组成https为例,首先向管控节点发送https请求具体包括以下步骤:
向管控节点发送https请求;
与管控节点建立连接;
访问管控信息数据库;
从管控信息数据库中获取管控节点的https接入地址;
各个一般节点将第一网络配置信息通过该接入地址上报至管控节点,以存入地址数据库,从而位于不同地域的各个一般节点即加入到同一个集群系统中。
直接向管控信息数据库发送查询请求具体包括以下步骤:
向管控信息数据库发送查询请求;
与管控信息数据库建立连接;
从管控信息数据库中获取管控节点的https接入地址;
各个一般节点将第一网络配置信息通过该接入地址上报至管控节点,以存入地址数据库,从而位于不同地域的各个一般节点即加入到同一个集群系统中。
位于不同地域的各个一般节点加入同一个集群后,管控节点会在每一个一般节点上启动一个虚拟网络守护模块,该虚拟网络守护模块可以是一个虚拟网络守护容器,如通过程序代码在每一个一般节点常驻一个虚拟网络守护进程实现;虚拟网络守护模块启动后,还会为自身创建第一虚拟网卡,并分配到一个本地的第一虚拟地址。
当一般节点上的某个所述应用内的容器启动后,该一般节点上的虚拟网络守护模块会为该容器创建一块第二虚拟网卡,并基于所述集群系统分配一个全局的第二虚拟地址,同时创建一条路由,并将所述第二虚拟地址路由到该容器所在一般节点的虚拟网络守护模块的第一虚拟网卡上;
在为容器创建好第二虚拟网卡后,当一般节点上的容器启动时,该一般节点上的第二配置模块就可以主动将该一般节点上的第一虚拟网卡的第一虚拟地址与该一般节点的实体网卡的物理地址绑定,并更新第二网络配置信息中的地址解析协议ARP表;
而且还主动将该一般节点的第一虚拟网卡的第一虚拟地址与该一般节点的公网地址绑定,更新第二网络配置信息中的转发数据库FDB表;然后将更新后的第二网络配置信息保存在地址数据库中。
在另一实施例中,也可是当任一一般节点上的所述应用内的容器启动时,启动网络地址的缓存缺失监听,并完成地址数据库的更新,具体如下:
当任一一般节点上的某个所述应用内的容器发送通讯报文,启动网络地址缓存缺失监听,当监听到ARP的缓存缺失时,被动地将该一般节点上的第一虚拟网卡的第一虚拟地址与该一般节点的实体网卡的物理地址绑定;
当监听到FDB的缓存缺失时,被动地将该一般节点上的第一虚拟网卡的第一虚拟地址与该一般节点的公网地址绑定;并将上述绑定关系作为第二网络配置信息,存入地址数据库中,完成地址数据库的更新。
进一步,请结合参照图2,在一个实施例中,包括不同地域的两个一般节点A和B,两个一般节点均可以是发送端,也可以是接收端,本实施例中以一般节点A为发送端,一般节点B为接收端为例,一般节点A和一般节点B上均部署有同一应用的容器,
一般节点A的公网地址为114.215.210.11,物理地址为:42:40:56:99:b0:a5
一般节点B的公网地址为39.101.161.127,物理地址为:ea:dc:a6:54:51:6a
首先,按照上述说明将一般节点A和一般节点B加入同一集群系统,即可以将第一配置模块部署在A和B任一个一般节点上形成管控接点,需要说明的是如果有其他一般节点如C、D、E等,也可以将第一配置模块部署在一般节点C、D、E上形成管控节点。管控节点部署的步骤如上述说明,不一一赘述,然后将一般节点A和B加入同一集群系统。
一般节点A和一般节点B通过在管控信息数据库获取接入地址后,将自身的第一网络配置信息汇报至管控节点,从而加入同一集群,而后,管控节点通过在一般节点A和一般节点B均部署一个常驻的虚拟网络守护进程(即所述虚拟网络守护模块),部署虚拟网络守护模块后,会为自身创建第一虚拟网卡,并分配到一个本地的第一虚拟地址,对应在本实施例中,一般节点A为发送端虚拟网络守护模块100和发送端第一虚拟网卡110,一般节点B为接收端虚拟网络守护模块120和接收端第一虚拟网卡121。
当一般节点A和B上的容器启动后,两一般节点上的虚拟网络守护模块会为各自一般节点上部署的容器创建第二虚拟网卡,并基于该集群系统分配一个全局的第二虚拟地址,并创建一条路由,并将两个一般节点上的容器的第二虚拟地址路由到各自虚拟网络守护模块的第一虚拟网卡上;一般节点A上容器的第二虚拟地址10.244.1.0,一般节点B上的容器的第二虚拟地址10.244.2.0。
当一般节点A上的容器收到指令向一般节点B上容器发送通讯报文时,此时一般节点A上的第二配置模块就可以主动将该一般节点上的第一虚拟网卡的第一虚拟地址与该一般节点的实体网卡的物理地址绑定,并更新第二网络配置信息中的地址解析协议ARP表;而且还主动将一般节点A的第一虚拟网卡的第一虚拟地址与该一般节点的公网地址绑定,更新第二网络配置信息中的转发数据库FDB表;然后将更新后的第二网络配置信息保存在地址数据库中。首先一般节点A虚拟网络守护模块发现接收端和一般节点A并不在同一本地网络,则此时查找地址数据库,通过地址数据库获取一般节点A和接收端容器所处的一般节点B各自的公网地址和物理地址,并将收发两端的公网地址和物理地址装载在通讯报文上后,通过一般节点A上的第一虚拟网卡向一般节点B转发。
当一般节点B收到接收指令时,一般节点B上的第二配置模块就可以主动将该一般节点上的第一虚拟网卡的第一虚拟地址与该一般节点的实体网卡的物理地址绑定,并更新第二网络配置信息中的地址解析协议ARP表;而且还主动将一般节点B的第一虚拟网卡的第一虚拟地址与该一般节点的公网地址绑定,更新第二网络配置信息中的转发数据库FDB表;然后将更新后的第二网络配置信息保存在地址数据库中。然后基于更新后的地址数据库对通讯报文进行拆解,并将拆解后的通讯报文基于所述路由表确认接收所述通讯报文的容器的第二虚拟地址,然后路由转进该容器内,从而完成一次通讯。需要说明的是,上一实施例中的地址数据库更新方法为一般节点主动更新,在其他实施例中也可以采用监听缓存缺失的方法进行被动更新,其具体方法与上述另一实施例一致,不一一赘述。
进一步,一般节点A容器发送通讯报文时,先通过一般节点A上的虚拟网络守护模块的第一虚拟网卡把通讯报文发出去,通过查询地址数据库获取一般节点A和一般节点B的实体网卡的物理地址和公网地址,并将两者的实体网卡的物理地址和公网地址添加到通讯报文的报文头部,然后通过一般节点A的实体网卡向一般节点B的公网地址发送,一般节点B接收到通讯报文后,通过解析通讯报文,获得一般节点A的实体网卡的物理地址和公网地址,此时一般节点A和B的虚拟网络守护模块已经学习到发送端和接收端各自的公网地址以及实体网卡的物理地址,并将其填充IP的头部信息,从而后续容器A和容器B就可以在两个跨地域一般节点之间进行互联,另外在一般节点B收到通讯报文后,对通讯报文进行解析获取接收端容器B的第二虚拟地址,通过查找路由,进而再通过一般节点B的虚拟网络守护模块的虚拟网卡路由转进一般节点B的对应容器内。
本发明提出的跨地域容器通讯系统,通过将位于不同地域的一般节点加入到同一个集群系统内,创建一个虚拟网络,并为容器创建一个虚拟网卡并基于全局分配一个虚拟地址,从而不同地域的容器之间在进行通讯时利用该虚拟网络进行转发,而无需依赖底层的网络设备和软件,又不修改网络包的转发路径,同时还不改变任何应用的API,故而不仅对通讯性能没有任何损耗而且更加稳定。
本发明还提出一种跨地域容器通讯方法,如图1所述,该方法包括如下步骤:
S100:获取预设的管控配置,将各个跨地域容器所在的一般节点按照所述管控配置加入集群系统。
S200:响应于接收到发送通讯报文指令,基于预设的地址数据库对所述通讯报文进行更新和/或转发至对应一般节点。
S300:响应于接收到通讯报文,基于所述地址数据库对通讯报文进行解析并转发至对应的容器。
在步骤S100中,各个跨地域一般节点获取管控配置,并加入同一集群系统,其中,可以在在任一一般节点部署管控程序以形成管控节点;管控节点在形成时,将自身的公网地址作为用于将其他一般节点加入所述集群系统的接入地址,并将至少包括所述接入地址的管控配置填入管控信息数据库;
各个跨地域一般节点使用自身的公网地址从该管控信息数据库获取管控配置,并从管控配置中获取接入地址,从而加入集群系统。
在步骤S200中,当任一一般节点接收到发送通讯报文的指令后,通过查找地址数据获取收发两端的物理地址和公网地址,并将其加载在通讯报文上,并向接收端一般节点转发。其中,在步骤S100中已经形成了管控节点,利用管控节点可以获取各个所述一般节点的公网地址、本地地址、和网卡信息;
还可以通过管控节点为各个一般节点部署网络守护程序以形成虚拟网络守护模块,虚拟网络守护模块建立后,会为其自身创建第一虚拟网卡,并基于所述第一虚拟网卡分配一个本地的第一虚拟地址;当各个一般节点上的容器启动时,通过已经建立好的虚拟网络守护模块为各个一般节点上的容器创建第二虚拟网卡,并基于第二虚拟网卡分配一个全局的第二虚拟地址,并将所述第二虚拟地址路由到第一虚拟网卡上,并创建路由表;
为各个一般节点上的容器创建完第二虚拟容器后,对地址数据库进行更新,更新的方法可以采用主动更新或被动更新;
主动更新过程如下:
当任一一般节点上的容器启动时,
主动将该一般节点上的第一虚拟网卡的第一虚拟地址与该一般节点的实体网卡的物理地址绑定,并更新第一网络配置信息中的地址解析协议ARP表;以及
主动将该一般节点上的第一虚拟网卡的第一虚拟地址与所述一般节点公网地址绑定,更新第一网络配置信息中的转发数据库FDB表;
将所述第一网络配置信息存入所述地址数据库。
被动更新过程如下:
当任一一般节点上的容器启动时,
启动网络地址的缓存缺失监听;以及
在容器发送通讯报文,监听到ARP的缓存缺失时,被动地将该一般节点的第一虚拟网卡的第一虚拟地址与该一般节点的实体网卡的物理地址绑定;以及
监听到FDB的缓存缺失时,被动地将该一般节点上的第一虚拟网卡的第一虚拟地址与所述一般节点的公网地址绑定;
将上述绑定关系作为第二网络配置信息存入地址数据库中。
在步骤S300中,当任一一般节点接收到通讯报文时,基于所述地址数据库对所述通讯报文进行拆解,并将拆解后的通讯报文基于所述路由表确认接收所述通讯报文的容器的第二虚拟地址,然后路由转进所述容器内。本发明一方面通过修改管控节点的全局配置表来达到在一个集群系统内添加跨地域一般节点的方式来达到让有状态应用的不同容器能调度在不同地域的一般节点上,另一方面通过虚拟网络的技术,通过添加通讯的报文对IP通讯包进行相应的转发,以及修改路由表的方式,在不改变现有集群的基础配置上无损的达到跨地域容器通讯的目的。
在介绍了本发明示例性实施例的方法、系统之后,接下来,参考图3对本发明示例性实施例的计算机可读存储介质进行说明。
请结合参照图3,其示出的计算机可读存储介质为光盘200,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施例中所记载的各步骤,例如:获取预设的管控配置,将各个跨地域容器所在的一般节点按照所述管控配置加入集群系统;响应于接收到发送通讯报文指令,基于预设的地址数据库对所述通讯报文进行更新和/或转发至对应一般节点;响应于接收到通讯报文,基于所述地址数据库对通讯报文进行解析并转发至对应的容器。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
在介绍了本发明示例性实施方式的方法、系统和存储介质之后,接下来,参考图4对本发明示例性实施方式的计算机设备300进行说明,图4示出了适于用来实现本发明实施方式的示例性计算机设备300的框图,该计算机设备300可以是计算机系统或服务器。图4显示的计算机设备300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机设备300的组件可以包括但不限于:一个或者多个处理器或者处理单元310,系统存储器320,连接不同系统组件(包括系统存储器和处理单元310)的总线330。
计算机设备300典型地包括多种计算机系统可读存储介质。这些存储介质可以是任何能够被计算机设备300访问的可用存储介质,包括易失性和非易失性存储介质,可移动的和不可移动的存储介质。
系统存储器可以包括易失性存储器形式的计算机系统可读存储介质,例如随机存取存储器(RAM321)和/或高速缓存存储器322。计算机设备300可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM323可以用于读写不可移动的、非易失性磁存储介质(图4中未显示,通常称为“硬盘驱动器”)。尽管未在图4中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光存储介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据存储介质接口与总线相连。系统存储器中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块324,这些程序模块324被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块324的程序/实用工具325,可以存储在例如系统存储器中,且这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块324以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块324通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备300也可以与一个或多个外部设备340(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口350进行。并且,计算机设备300还可以通过网络适配器360与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器360通过总线与计算机设备300的其它模块(如处理单元310等)通信。应当明白,尽管图4中未示出,可以结合计算机设备300使用其它硬件和/或软件模块。
处理单元310通过运行存储在系统存储器中的程序,从而执行各种功能应用以及数据处理,例如:获取预设的管控配置,将各个跨地域容器所在的一般节点按照所述管控配置加入集群系统;响应于接收到发送通讯报文指令,基于预设的地址数据库对所述通讯报文进行更新和/或转发至对应一般节点;响应于接收到通讯报文,基于所述地址数据库对通讯报文进行解析并转发至对应的容器。
应当注意,尽管在上文详细描述中提及了跨地域容器通讯系统的若干单元/模块或子单元/模,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (21)
1.一种跨地域容器通讯系统,包括多个一般节点,所述多个一般节点分别部署在不同地域,每一个所述一般节点上均部署有属于同一应用的容器,其特征在于,所述系统还包括:第一配置模块,用于收集所述一般节点的第一网络配置信息,并将所述第一网络配置信息存入地址数据库,以将所述一般节点加入同一个集群系统;
部署在任一个一般节点的容器在向部署在跨地域的其他一般节点上的容器发送通讯报文时,基于所述地址数据库对所述通讯报文进行更新和/或转发;
任一个一般节点接收到跨地域的通讯报文时,基于所述地址数据库对所述通讯报文进行解析并转发至所述一般节点上的对应容器。
2.如权利要求1所述的跨地域容器通讯系统,其特征在于,所述系统还包括一管控节点,所述第一配置模块部署于任一所述一般节点以形成所述管控节点;
所述管控节点在部署时,将自身的公网地址作为用于将其他一般节点加入所述集群系统的接入地址,并将至少包括所述接入地址的管控配置填入管控信息数据库;
任一所述一般节点在加入所述集群系统时,使用所述管控节点的公网地址作为连接点,包括:
使用自身的公网地址从所述管控信息数据库获取管控配置;
从所述管控配置中获取所述接入地址,以加入所述集群系统。
3.如权利要求2所述的跨地域容器通讯系统,其特征在于,每一个一般节点均部署有虚拟网络守护模块,用于将自身所在的一般节点的第一网络配置信息发送至所述管控节点,所述第一网络配置信息至少包括所述一般节点的公网地址、本地地址和网卡信息。
4.如权利要求3所述的跨地域容器通讯系统,其特征在于,所述虚拟网络守护模块还用于创建自身的第一虚拟网卡,并基于所述第一虚拟网卡分配一个本地的第一虚拟地址。
5.如权利要求4所述的跨地域容器通讯系统,其特征在于,所述虚拟网络守护模块还用于当所述虚拟网络守护模块自身所在一般节点上的容器启动时,为所述容器创建第二虚拟网卡,并基于所述第二虚拟网卡分配一个全局的第二虚拟地址,以及将所述第二虚拟地址路由到第一虚拟网卡上,并创建路由表。
6.如权利要求5所述的跨地域容器通讯系统,其特征在于,所述系统还包括第二配置模块,每一个所述一般节点均部署有所述第二配置模块;
所述第二配置模块用于在自身所处的一般节点上的容器启动时,主动将所述第一虚拟地址与所述一般节点的实体网卡的物理地址绑定,更新第二网络配置信息中的地址解析协议ARP表;以及
主动将所述第一虚拟地址与所述一般节点的公网地址绑定,更新所述第二网络配置信息中的转发数据库FDB表;
将所述第二网络配置信息存入所述地址数据库中。
7.如权利要求5所述的跨地域容器通讯系统,其特征在于,所述系统还包括第二配置模块,每一个所述一般节点均部署有所述第二配置模块;
所述第二配置模块用于在自身所处的一般节点上的容器启动时,启动网络地址的缓存缺失监听;以及
在所述容器发送通讯报文,监听到ARP的缓存缺失时,被动地将所述第一虚拟地址与所述一般节点的实体网卡的物理地址绑定;以及
监听到FDB的缓存缺失时,被动地将所述第一虚拟地址与所述一般节点的公网地址绑定;以及
将上述绑定关系作为第二网络配置信息,存入所述地址数据库中。
8.如权利要求6或7所述的跨地域容器通讯系统,其特征在于,任一所述一般节点上的容器在发送通讯报文时,通过所述容器的虚拟网卡向自身所在的一般节点上的虚拟网络守护模块的虚拟网卡发送所述通讯报文,所述虚拟网络守护模块的虚拟网卡通过所述地址数据库查找发送端容器和接收端容器所在一般节点的公网地址和物理地址,并将所述公网地址和物理地址装载在所述通讯报文上后向接收端转发。
9.如权利要求6或7所述的跨地域容器通讯系统,其特征在于,任一所述一般节点在接收到跨地域容器发送的通讯报文时,基于所述地址数据库对所述通讯报文进行拆解,并将拆解后的通讯报文基于所述路由表确认接收所述通讯报文的容器的第二虚拟地址,然后路由转进所述容器内。
10.一种跨地域容器通讯方法,其特征在于,包括:
获取预设的管控配置,将各个跨地域容器所在的一般节点按照所述管控配置加入集群系统;
响应于接收到发送通讯报文的指令,基于预设的地址数据库对所述通讯报文进行更新和/或转发;
响应于接收到通讯报文,基于所述地址数据库对通讯报文进行解析并转发至对应的容器。
11.如权利要求10所述的跨地域容器通讯方法,其特征在于,还包括:
在任一一般节点部署管控程序以形成管控节点;
所述管控节点在形成时,将自身的公网地址作为用于将其他一般节点加入所述集群系统的接入地址,并将至少包括所述接入地址的管控配置填入管控信息数据库。
12.如权利要求11所述的跨地域容器通讯方法,其特征在于,任一所述一般节点使用自身的公网地址从所述管控信息数据库获取所述管控配置,并从所述管控配置中获取所述接入地址,以加入所述集群系统。
13.如权利要求11所述的跨地域容器通讯方法,其特征在于,所述管控节点还用于获取各个所述一般节点的第一网络配置信息,所述第一网络配置信息至少包括公网地址、本地地址、和网卡信息。
14.如权利要求10所述的跨地域容器通讯方法,其特征在于,还包括:
为全部所述一般节点部署网络守护程序以形成虚拟网络守护模块,并通过所述虚拟网络守护模块为各个一般节点自身创建第一虚拟网卡,并基于所述第一虚拟网卡分配一个本地的第一虚拟地址。
15.如权利要求14所述的跨地域容器通讯方法,其特征在于,任一所述一般节点上的容器启动时,通过所述虚拟网络守护模块为自身所在的一般节点上的容器创建第二虚拟网卡,并基于所述第二虚拟网卡分配一个全局的第二虚拟地址,并将所述第二虚拟地址路由到第一虚拟网卡上,并创建路由表。
16.如权利要求15所述的跨地域容器通讯方法,其特征在于,还包括:
任一所述一般节点上的容器启动时,
主动将所述第一虚拟地址与所述一般节点的实体网卡的物理地址绑定,并更新第一网络配置信息中的地址解析协议ARP表;以及
主动将所述第一虚拟地址与所述一般节点公网地址绑定,更新所述第一网络配置信息中的转发数据库FDB表;
将所述第一网络配置信息存入所述地址数据库。
17.如权利要求15所述的跨地域容器通讯方法,其特征在于,还包括:
任一所述一般节点上的容器启动时,
启动网络地址的缓存缺失监听;以及
在所述容器发送通讯报文,监听到ARP的缓存缺失时,被动地将所述第一虚拟地址与所述一般节点的实体网卡的物理地址绑定;以及
监听到FDB的缓存缺失时,被动地将所述第一虚拟地址与所述一般节点的公网地址绑定;
将上述绑定关系作为第二网络配置信息存入所述地址数据库中。
18.如权利要求16或17所述的跨地域容器通讯方法,其特征在于,任一所述一般节点上的容器在发送通讯报文时,通过所述容器的第一虚拟网卡向自身所在的一般节点上的第二虚拟网卡发送所述通讯报文,所述第二虚拟网卡通过所述地址数据库查找发送端容器和接收端容器所在一般节点的公网地址和物理地址,并将所述公网地址和物理地址装载在所述通讯报文上后向接收端转发。
19.如权利要求16或17所述的跨地域容器通讯方法,其特征在于,任一所述一般节点在接收到跨地域容器发送的通讯报文时,基于所述地址数据库对所述通讯报文进行拆解,并将拆解后的通讯报文基于所述路由表确认接收所述通讯报文的容器的第二虚拟地址,然后路由转进所述容器内。
20.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求10-19中任一项所述的方法。
21.一种计算机设备,其特征在于:所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求10-19中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110261585.2A CN112637037B (zh) | 2021-03-10 | 2021-03-10 | 跨地域容器通讯系统、方法、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110261585.2A CN112637037B (zh) | 2021-03-10 | 2021-03-10 | 跨地域容器通讯系统、方法、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637037A true CN112637037A (zh) | 2021-04-09 |
CN112637037B CN112637037B (zh) | 2021-06-18 |
Family
ID=75297728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110261585.2A Active CN112637037B (zh) | 2021-03-10 | 2021-03-10 | 跨地域容器通讯系统、方法、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637037B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314437A (zh) * | 2022-06-16 | 2022-11-08 | 阿里巴巴(中国)有限公司 | 容器虚拟网络通信方法和容器虚拟网络 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549580A (zh) * | 2018-03-30 | 2018-09-18 | 平安科技(深圳)有限公司 | 自动部署Kubernetes从节点的方法及终端设备 |
CN108768692A (zh) * | 2018-04-18 | 2018-11-06 | 华为技术有限公司 | 一种网络创建方法、相关设备及系统 |
CN110601949A (zh) * | 2019-09-10 | 2019-12-20 | 中国人民解放军国防科技大学 | 一种多虚拟设备容器组网方法 |
US20200076685A1 (en) * | 2018-08-30 | 2020-03-05 | Juniper Networks, Inc. | Multiple networks for virtual execution elements |
CN111510515A (zh) * | 2020-04-07 | 2020-08-07 | 中国建设银行股份有限公司 | 一种区分混合应用环境的容器的方法及装置 |
CN111542064A (zh) * | 2020-04-22 | 2020-08-14 | 中国科学院计算技术研究所 | 一种用于无线接入网的容器编排管理系统及编排方法 |
CN112130965A (zh) * | 2020-10-26 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 部署分布式容器编排管理集群的方法、设备及存储介质 |
CN112311568A (zh) * | 2019-07-26 | 2021-02-02 | 中移(苏州)软件技术有限公司 | 一种虚拟网络创建方法、装置及计算机存储介质 |
CN112333017A (zh) * | 2020-10-30 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种服务配置方法、装置、设备及存储介质 |
-
2021
- 2021-03-10 CN CN202110261585.2A patent/CN112637037B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549580A (zh) * | 2018-03-30 | 2018-09-18 | 平安科技(深圳)有限公司 | 自动部署Kubernetes从节点的方法及终端设备 |
CN108768692A (zh) * | 2018-04-18 | 2018-11-06 | 华为技术有限公司 | 一种网络创建方法、相关设备及系统 |
US20200076685A1 (en) * | 2018-08-30 | 2020-03-05 | Juniper Networks, Inc. | Multiple networks for virtual execution elements |
CN112311568A (zh) * | 2019-07-26 | 2021-02-02 | 中移(苏州)软件技术有限公司 | 一种虚拟网络创建方法、装置及计算机存储介质 |
CN110601949A (zh) * | 2019-09-10 | 2019-12-20 | 中国人民解放军国防科技大学 | 一种多虚拟设备容器组网方法 |
CN111510515A (zh) * | 2020-04-07 | 2020-08-07 | 中国建设银行股份有限公司 | 一种区分混合应用环境的容器的方法及装置 |
CN111542064A (zh) * | 2020-04-22 | 2020-08-14 | 中国科学院计算技术研究所 | 一种用于无线接入网的容器编排管理系统及编排方法 |
CN112130965A (zh) * | 2020-10-26 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 部署分布式容器编排管理集群的方法、设备及存储介质 |
CN112333017A (zh) * | 2020-10-30 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种服务配置方法、装置、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314437A (zh) * | 2022-06-16 | 2022-11-08 | 阿里巴巴(中国)有限公司 | 容器虚拟网络通信方法和容器虚拟网络 |
CN115314437B (zh) * | 2022-06-16 | 2024-03-01 | 阿里巴巴(中国)有限公司 | 容器虚拟网络通信方法和容器虚拟网络 |
Also Published As
Publication number | Publication date |
---|---|
CN112637037B (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11070488B2 (en) | System and method to control a cross domain workflow based on a hierarchical engine framework | |
CN109542457B (zh) | 一种边缘计算网络的分布式应用分发部署的系统及方法 | |
CN111278031B (zh) | Pdu类型的设置方法、ue策略的设置方法、实体及存储介质 | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
CN110138606B (zh) | 容器网络配置方法及系统 | |
CN110209719B (zh) | 一种基于微服务架构的多种数据库统一访问系统及方法 | |
JP2008283670A (ja) | 機器およびサービスのアクセス、接続性および相互運用性 | |
CN100576846C (zh) | 多协议域名解析服务的服务代理方法 | |
JP4789425B2 (ja) | 経路テーブル同期方法、ネットワーク機器および経路テーブル同期プログラム | |
CN111431956A (zh) | 跨网络的服务访问方法、设备、系统及存储介质 | |
CN110633175B (zh) | 基于微服务的多机房数据处理方法、电子设备及存储介质 | |
CN112333017B (zh) | 一种服务配置方法、装置、设备及存储介质 | |
CN111147308B (zh) | 基于微服务架构的网络管理方法和系统 | |
US9021013B2 (en) | Ubiquitous web service gateway and method | |
CN114064206A (zh) | 一种访问边缘节点的pod方法、系统、设备及存储介质 | |
CN112637037B (zh) | 跨地域容器通讯系统、方法、存储介质及计算机设备 | |
CN116382585A (zh) | 临时卷存储方法、容器化云平台及计算机可读介质 | |
US10243920B1 (en) | Internet protocol address reassignment between virtual machine instances | |
US8316045B1 (en) | Database linking system | |
CN113285894A (zh) | 基于可编程交换机的身份标识网络移动性控制方法及系统 | |
CN111600833A (zh) | 网络操作系统及报文转发方法 | |
CN112702441B (zh) | 基于容器的访问数据处理方法、装置、系统及存储介质 | |
CN111935019A (zh) | 数字对象寻址方法、装置及设备、存储介质 | |
CN117834704A (zh) | 一云多芯应用的通信方法、装置、计算机设备及存储介质 | |
CN117194039A (zh) | K8s驱动集成系统、请求处理方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |