CN114025021A - 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 - Google Patents
一种跨Kubernetes集群的通信方法、系统、介质和电子设备 Download PDFInfo
- Publication number
- CN114025021A CN114025021A CN202111370999.5A CN202111370999A CN114025021A CN 114025021 A CN114025021 A CN 114025021A CN 202111370999 A CN202111370999 A CN 202111370999A CN 114025021 A CN114025021 A CN 114025021A
- Authority
- CN
- China
- Prior art keywords
- service
- component
- domain name
- cluster
- access request
- 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
Abstract
本申请提供一种跨Kubernetes集群的通信方法、系统、计算机可读存储介质和电子设备。该方法包括:部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;访问请求包括部署在第二Kubernetes集群的第二服务的域名;出口组件根据第二服务的域名将访问请求发送至第二Kubernetes集群的入口组件;入口组件用于接收第二Kubernetes集群外部的访问请求;入口组件根据第二服务的域名将访问请求发送至第二服务。籍此,使部署在不同Kubernetes集群中的服务之间可根据内网域名,直接进行相互访问和调用。
Description
技术领域
本申请涉及云原生技术领域,特别涉及一种跨Kubernetes集群的通信方法、系统、计算机可读存储介质和电子设备。
背景技术
Kubernetes是Google开源的一个容器编排引擎,支持自动化部署、大规模可伸缩、应用容器化管理。
Kubernetes集群是指部署有Kubernetes系统的主机集群,在集群管理上,Kubernetes系统将集群中的主机划分为控制节点和工作节点,在控制节点上运行这集群管理相关的一组程序,来自动完成整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理能力。
对于现有的Kubernetes系统,同一个Kubernetes集群内部署的不同服务,可以通过服务的内网域名进行相互访问、调度。具体由发出请求的服务向Kubernetes集群中的DNS组件发送要访问的服务的内网域名,获取要访问的服务对应的ClusterIP(服务的内网IP地址)。发出请求的服务向该ClusterIP发出请求,该请求即被发送至该服务对应的Endpoint,即该服务对应的某个具体Pod,从而实现Kubernetes集群内不同服务之间的通信。
然而,现有的Kubernetes系统并没有提供一种通用的跨Kubernetes集群的服务通信的方案,无法满足部署在不同Kubernetes集群上的服务之间相互访问、调用的需求。因此,需要提供一种针对上述现有技术不足的改进技术方案。
发明内容
本申请的目的在于提供一种跨Kubernetes集群的通信方法、系统、计算机可读存储介质和电子设备,以解决或缓解上述现有技术中存在的问题。
为了实现上述目的,本申请提供如下技术方案:
本申请提供了一种跨Kubernetes集群的通信方法,包括:部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;其中,第一内网IP地址为出口组件在所述第一Kubernetes集群中的内网IP地址,所述出口组件部署在所述第一Kubernetes集群中,用于向所述第一Kubernetes集群外部发送所述访问请求,所述访问请求包括第二服务的域名,所述第二服务部署在第二Kubernetes集群上;所述出口组件根据所述第二服务的域名,将所述访问请求发送至入口组件;其中,所述入口组件部署在所述第二Kubernetes集群中,用于接收所述第二Kubernetes集群外部的所述访问请求;所述入口组件根据所述第二服务的域名,将所述访问请求发送至所述第二服务。
优选的,在所述部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求之前,还包括:所述第一服务根据所述第二服务的域名,从第一域名解析组件获取所述第一内网IP地址;其中,所述第一域名解析组件部署在所述第一Kubernetes集群上;相应地,在所述入口组件根据所述第二服务的域名,将所述访问请求发送至所述第二服务之前,还包括:所述入口组件根据所述第二服务的域名,从第二域名解析组件获取第二内网IP地址;其中,所述第二内网IP地址为所述第二服务在所述第二Kubernetes集群中的内网IP地址,所述第二域名解析组件部署在所述第二Kubernetes集群上。
优选的,在所述第一服务根据所述第二服务的域名,从第一域名解析组件获取所述第一内网IP地址之前,还包括:通过第一API-Server组件从控制组件获取所述第二服务的域名;其中,所述第一API-Server组件部署在所述第一Kubernetes集群上;将所述第一内网IP地址作为所述第二服务的域名在所述第一Kubernetes集群中对应的内网IP地址,在所述第一域名解析组件中进行注册。
优选的,在所述出口组件根据所述第二服务的域名,将所述访问请求发送至入口组件之前,还包括:通过第一API-Server组件从所述控制组件获取所述第二Kubernetes集群的外部访问IP地址;将所述第二Kubernetes集群的外部访问IP地址作为所述第二服务的域名对应的跨Kubernetes集群访问IP地址,在所述出口组件中进行注册。
优选的,在所述通过第一API-Server组件从控制组件获取所述第二服务的域名之前,还包括:所述第二服务通过第二API-Server组件向所述控制组件上报所述第二服务的域名;其中,所述第二API-Server组件部署在所述第二Kubernetes集群上;所述第二API-Server组件向所述控制组件上报所述第二Kubernetes集群的外部访问IP地址。
优选的,所述第二服务通过第二API-Server组件向所述控制组件上报所述第二服务的域名,包括:所述第二服务向所述第二API-Server组件发送所述第二服务的域名和允许接收外部访问请求的标签;所述第二API-Server组件将所述第二服务的域名转发至所述控制组件和所述入口组件;所述入口组件将所述第二服务的域名在允许接收外部访问请求的白名单中进行注册;相应地,所述入口组件根据所述第二服务的域名,将所述访问请求发送至所述第二服务,包括:所述入口组件基于所述白名单对所述访问请求中的所述第二服务的域名进行权限认证;认证成功后,将所述访问请求发送至所述第二服务。
优选的,所述控制组件部署在独立于所述第一Kubernetes集群和所述第二Kubernetes集群之外的控制集群上。
本申请实施例还提供一种跨Kubernetes集群的通信系统,包括:请求访问单元,配置为部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;其中,第一内网IP地址为出口组件在所述第一Kubernetes集群中的内网IP地址,所述出口组件部署在所述第一Kubernetes集群中,用于向所述第一Kubernetes集群外部发送所述访问请求,所述访问请求包括第二服务的域名,所述第二服务部署在第二Kubernetes集群上;外部转发单元,配置为所述出口组件根据所述第二服务的域名,将所述访问请求发送至入口组件;其中,所述入口组件部署在所述第二Kubernetes集群中,用于接收所述第二Kubernetes集群外部的所述访问请求;内部转发单元,配置为所述入口组件根据所述第二服务的域名,将所述访问请求发送至所述第二服务。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序为如上任一所述的跨Kubernetes集群的通信方法。
本申请实施例还提供一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如上任一所述的跨Kubernetes集群的通信方法。
与最接近的现有技术相比,本申请实施例的技术方案具有如下有益效果:
本申请实施例提供的技术方案中,由部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;其中,第一内网IP地址为部署在第一Kubernetes集群中的出口组件在第一Kubernetes集群中的内网IP地址,出口组件用于向第一Kubernetes集群外部发送访问请求;访问请求中包含部署在第二Kubernetes集群中的第二服务的域名;因而,在出口组件根据第二服务的域名,将访问请求发送至第二Kubernetes集群时,部署在第二Kubernetes集群上的入口组件接收访问请求,并根据访问请求中包含的第二服务的域名,将访问请求发送至第二服务。籍此,提出了一种通用的跨Kubernetes集群的服务通信方案,使部署在不同Kubernetes集群中的服务之间可根据内网域名,直接进行相互访问和调用。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。其中:
图1为根据本申请的一些实施例提供的一种跨Kubernetes集群的通信方法的流程示意图;
图2为根本申请的一些实施例提供的两个Kubernetes集群之间服务跨集群注册的逻辑示意图;
图3为根本申请的一些实施例提供的多个Kubernetes集群之间服务跨集群注册的逻辑示意图;
图4为根本申请的一些实施例提供的两个Kubernetes集群之间服务跨集群通信的逻辑示意图;
图5为根本申请的一些实施例提供的多个Kubernetes集群之间服务跨集群通信的逻辑示意图;
图6为根据本申请的一些实施例提供的一种跨Kubernetes集群的通信系统的结构示意图;
图7为根据本申请的一些实施例提供的电子设备的结构示意图;
图8为根据本申请的一些实施例提供的电子设备的硬件示意图。
具体实施方式
下面将参考附图并结合实施例来详细说明本申请。各个示例通过本申请的解释的方式提供而非限制本申请。实际上,本领域的技术人员将清楚,在不脱离本申请的范围或精神的情况下,可在本申请中进行修改和变型。例如,示为或描述为一个实施例的一部分的特征可用于另一个实施例,以产生又一个实施例。因此,所期望的是,本申请包含归入所附权利要求及其等同物的范围内的此类修改和变型。
名词解释:
Pod(容器组):是Kubernetes集群中创建和管理的、最小的可部署的计算单元,是一组(一个或多个)容器,容器之间共享资源和依赖、彼此通信。容器运行在操作系统上,可以有效地对单个操作系统的资源进行划分,容器运行应用进程时能够将应用进程与系统其他部分隔离开。
Service(服务):是一种为一组功能相同的Pod提供单一不变的接入点资源,当某个Pod具有Service的选择器指定的Label(标签)时,该Pod即成为Service的成员。
Controller组件:控制组件,用于获取不同集群上部署的允许跨集群访问的Service及其对应的Endpoints,即与该Service对应的若干个Pod的IP地址,并计算出路由规则下发给每个集群上的集群出口代理组件。
本申请实施例提供的跨Kubernetes集群的通信方法,能够实现两个部署在不同的Kubernetes集群上的服务之间的信息交互,类似地,也能够实现多个部署在不同的Kubernetes集群上的服务之间的信息交互。为了便于说明,以两个部署在不同的Kubernetes集群(第一Kubernetes集群和第二Kubernetes集群)上的服务之间的信息交互为例,对本申请的技术方案进行说明。
在本申请实施例中,第一Kubernetes集群和第二Kubernetes集群中均部署有服务API-Server组件、容器(Pod)、服务(Service)、域名解析组件(DNS组件)、集群出口代理组件(Egress组件,即出口组件)、集群入口代理组件(Ingress组件,即入口组件)。为了便于说明,分别将第一Kubernetes集群中的API-Server组件、域名解析组件、服务、服务的内网域名、出口组件的内网IP地址称为第一API-Server组件、第一DNS组件、第一服务、第一服务的域名和第一内网IP地址;分别将第二Kubernetes集群中的API-Server组件、域名解析组件、服务、服务的内网域名、第二服务的IP地址称为第二API-Server组件、第二DNS组件、第二服务、第二服务的域名和第二内网IP地址。
示例性方法
如图1-图5所示,该跨Kubernetes集群的通信方法包括:
步骤S101、部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求。
其中,第一内网IP地址为出口组件在第一Kubernetes集群中的内网IP地址,出口组件部署在第一Kubernetes集群中,用于向第一Kubernetes集群外部发送访问请求,访问请求包括第二服务的域名,第二服务部署在第二Kubernetes集群上。
基于前述对现有技术的描述,可以知道,在现有的Kubernetes系统中,服务可以被部署在同一Kubernetes集群上的其他服务通过内网域名或者内网IP地址直接访问或调用,但不能被部署在其他Kubernetes集群上的服务通过内网域名或者内网IP地址直接访问和调用,即不同Kubernetes集群上的服务在进行通信时,不能只通过Kubernetes集群内的网络传输访问请求,还需要借助不同Kubernetes集群之间的公网/局域网进行通信。具体来说,如果两个Kubernetes集群在不同机房,则使用公网进行通信,如果在同一机房内,则使用局域网进行通信。
因此,在本申请实施例中,分别在第一Kubernetes集群和第二Kubernetes集群中设置了出口组件和入口组件,作为Kubernetes集群之间通信的代理组件。
应当理解,第一Kubernetes集群上部署的第一服务要将访问请求发送至第二Kubernetes集群上部署的第二服务,则需要将访问请求先发送至出口组件,由出口组件将访问请求转发至第二Kubernetes集群的入口组件。
基于对Kubernetes集群内部网络的说明,可以知道,发出访问请求的服务需要将要访问的服务的内网域名发送至Kubernetes集群上部署的DNS组件,比如说CoreDNS,来获取要访问的服务的内网IP地址。
类似地,在本申请实施例中,在部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求之前,第一服务可以根据第二服务的域名,从第一域名解析组件(即部署在第一Kubernetes集群上的域名解析组件,又可以称作第一DNS组件)获取前述第一内网IP地址,由于第一内网IP地址实际上是出口组件的内网IP地址,从而将访问请求发送至出口组件。
为了让第一服务能够根据第二服务的域名,从第一域名解析组件获取第一内网IP地址,一种可能的实现方式是,设置控制组件获取部署在不同的Kubernetes集群上的服务的内网域名,在第一服务根据第二服务的域名,从第一域名解析组件获取第一内网IP地址之前,通过第一API-Server组件(即部署在第一Kubernetes集群上的API-Server组件)从前述控制组件获取第二服务的域名,将第一内网IP地址作为第二服务的域名在第一Kubernetes集群中对应的内网IP地址,在第一域名解析组件中进行注册。当第一服务将第二服务的域名发送给第一域名解析组件时,第一域名解析组件即将第一内网IP地址作为第二服务的域名对应的内网IP地址进行反馈。
步骤S102、出口组件根据第二服务的域名,将访问请求发送至入口组件。
其中,入口组件部署在第二Kubernetes集群中,用于接收第二Kubernetes集群外部的访问请求。基于前述说明,可以知道,在本申请实施例将出口组件和入口组件作为Kubernetes集群之间通信的代理组件。
可以理解,当第一服务将访问请求发送至出口组件后,出口组件需要通过第一Kubernetes集群和第二Kubernetes集群之间的公网/局域网将访问请求发送至第二Kubernetes集群中的入口组件。具体来说,在出口组件中建立第二服务的域名和入口组件的公网/局域网IP地址(即第二Kubernetes集群的外部访问IP地址)之间的映射关系,根据第二Kubernetes集群上的第二Kubernetes集群的外部访问IP地址,将访问请求转发至第二Kubernetes集群的入口组件。
为了让出口组件能够根据第二服务的域名,将访问请求发送至入口组件,一种可能的实现方式是,前述控制组件还需要获取第二Kubernetes集群的外部访问IP地址,进而能够从控制组件获取第二服务的域名和第二Kubernetes集群的外部访问IP地址,将第二Kubernetes集群的外部访问IP地址作为第二服务的域名对应的跨Kubernetes集群访问IP地址,在出口组件中进行注册。具体地,在出口组件根据第二服务的域名,将访问请求发送至入口组件之前,通过第一API-Server组件从控制组件获取第二Kubernetes集群的外部访问IP地址;将第二Kubernetes集群的外部访问IP地址作为第二服务的域名对应的跨Kubernetes集群访问IP地址,在出口组件中进行注册。
在本申请实施例中,出口组件既可以直接访问控制组件进行信息获取,也可以通过第一API-Server组件访问控制组件进行信息获取,本申请实施例对此不做限定。
可以理解,控制组件需要获取第二服务的域名和第二Kubernetes集群的外部访问IP地址,一种可能的实现方式是,第二服务通过第二API-Server组件(即部署在第二Kubernetes集群上的API-Server组件)向控制组件上报第二服务的域名,第二API-Server组件向控制组件上报第二Kubernetes集群的外部访问IP地址。需要说明的是,第二服务的域名和第二Kubernetes集群的外部访问IP地址都可以通过访问第二API-Server组件进行获取。
步骤S103、入口组件根据第二服务的域名,将访问请求发送至第二服务。
基于前述说明,可以知道,当入口组件从出口组件接收前述访问请求后,还需要将访问请求转发至第二服务。
为了让入口组件能够根据第二服务的域名,将访问请求发送至第二服务,一种可能的实现方式是,在入口组件根据第二服务的域名,将访问请求发送至第二服务之前,入口组件根据第二服务的域名,从第二域名解析组件(即部署在第二Kubernetes集群上的域名解析组件,又被称作第二DNS组件)获取第二内网IP地址,即第二服务在第二Kubernetes集群中的内网IP地址。
基于对现有技术的描述,可以知道,由于第二服务原本就是部署在第二Kubernetes集群中的服务,Kubernetes系统自动会将第二服务的域名和第二内网IP地址在第二域名解析组件进行注册,因此当入口组件将第二服务的域名发送给第二域名解析组件时,第二域名解析组件即将第二内网IP地址进行反馈。
进一步地,在申请实施例中,由于跨Kubernetes集群通信过程中需要使用公网/局域网进行通信,为降低网络安全风险,提升网络安全性能,进而对跨Kubernetes集群通信进行限制,接受访问的服务首先需要进行声明,允许被其它Kubernetes集群上部署的服务进行访问。
具体的,在第二服务通过第二API-Server组件向控制组件上报第二服务的域名时,第二服务向第二API-Server组件发送第二服务的域名和允许接收外部访问请求的标签,第二API-Server组件将第二服务的域名转发至控制组件和入口组件,入口组件将第二服务的域名在允许接收外部访问请求的白名单中进行注册。
相应地,在入口组件根据第二服务的域名,将访问请求发送至第二服务时,入口组件基于白名单对访问请求中的第二服务的域名进行权限认证。认证成功后,将访问请求发送至第二服务。认证失败,则将访问请求进行丢弃,从而防止第三方恶意访问Kubernetes集群不允许外部访问的服务。
在本申请实施例中,响应于检测到第二服务的域名添加了允许外部访问的标签,第二服务将第二服务的域名和外部访问IP地址上报至控制组件,由控制组件将第二服务的域名和外部访问IP地址同步至第一Kubernetes集群。
当存在多个Kubernetes集群进行通信时,只有检测到服务添加了允许外部访问的标签,服务所在的Kubernetes集群API-Server才会向控制组件上报该服务的内网域名及其所在Kubernetes集群的集群代理入口组件的公网/局域网IP地址。同时,在该服务所在的Kubernetes集群的集群代理入口组件中设置白名单,只有添加了允许外部访问标签的服务的内网域名,才会被加入白名单。当Kubernetes集群的集群代理入口组件收到外部访问请求时,如果的内网域名在白名单中,则将访问请求进行内网转发,否则,将访问请求直接丢弃。籍此,通过白名单制度,有效防止第三方恶意访问Kubernetes集群上的内部服务,增强了网络安全性。
需要特别说明的是,本申请实施例中的控制组件既可以容器化部署在第一Kubernetes集群或者第二Kubernetes集群中的任一节点上,还可以容器化部署在独立于相互通信的Kubernetes集群以外的控制集群上,本申请实施例对此不做限定。
在一具体的应用场景中,以分别部署在第一Kubernetes集群和第二Kubernetes集群上的第一Service和第二Service之间的通信为例,对本申请实施例所提出的跨Kubernetes集群的通信方法进行说明。
在该应用场景中,第一阶段、通过控制组件跨Kubernetes集群进行服务的内网域名的注册;
如图2所示,当第二Service部署在第二Kubernetes集群上后,对第二Service设置允许接收外部访问请求的标签。第二Kubernetes集群通过第二API-Server组件向控制组件主动上报第二Service的内网域名和第二Kubernetes集群上入口组件的公网/局域网IP地址,并将第二Service的内网域名添加至第二Kubernetes集群的入口组件的白名单中。控制组件将该信息发送至其他所有Kubernetes集群的API-Server组件,包括第一Kubernetes集群。
第一Kubernetes集群的第一API-Server组件将第二Service的内网域名在第一Kubernetes集群的第一DNS组件中进行注册,并将第一Kubernetes集群的出口组件的内网IP地址作为第二Service的内网域名对应的IP地址。
第一Kubernetes集群的第一API-Server组件将第二Service的内网域名和第二Kubernetes集群上的入口组件的公网/局域网IP地址一起发送至第一Kubernetes集群的出口组件,使得第一Kubernetes集群的出口组件建立起第二Service的内网域名和第二Kubernetes集群上的入口组件的公网/局域网IP地址之间的映射关系。
第二阶段、Service发起跨Kubernetes集群的访问;
如图4所示,第一Service发起的对第二Service进行的访问,实际上是由第一Service对应的Pod发起对第二Service进行访问。当Pod请求访问第二Service时,和访问同一Kubernetes集群下的其他Service一样,向第一DNS组件发送第二Service的内网域名,第一DNS组件根据第一阶段在第一DNS组件注册的信息,返回第一Kubernetes集群的出口组件的内网IP地址。第一Service即向第一Kubernetes集群的出口组件发出访问请求,该请求中包括第二Service的内网域名。
第一Kubernetes集群的出口组件根据之前建立的映射关系,根据第二Kubernetes集群上入口组件的公网/局域网IP地址,利用公网/局域网将该访问请求转发至第二Kubernetes集群上的入口组件。
第二Kubernetes集群上的入口组件对第二Service的内网域名进行权限认证,认证通过后,即向第二Kubernetes集群上的第二DNS组件发送访问请求中的第二Service的内网域名,第二DNS组件返回第二Service对应的ClusterIP。入口组件向该ClusterIP转发访问请求,该请求即被发送至第二Service对应的Pod。
需要强调的是,本申请实施例的技术方案,当允许外部访问的某个服务在多个Kubernetes集群中的某个Kubernetes集群上部署完成后,该服务的内网域名即在每个Kubernetes集群的域名解析组件中都进行了注册,其他Kubernetes集群将不允许相同内网域名的服务进行部署,从而可以避免服务跨Kubernetes集群通信时出现域名冲突的问题。
在本申请实施例的技术方案,一方面,不同Kubernetes集群之间的通信基于应用层实现,不依赖底层网络,当底层网络结构出现变化时,对服务的通信没有影响,可靠性高;而且,可以和现有的Kubernetes集群内部服务访问完美兼容,消除Kubernetes集群之间服务的通信障碍,强化不同Kubernetes集群上服务之间的联系。
另一方面,对于发出访问请求的服务,通过完全相同的请求方式即可实现对同一Kubernetes集群和其它Kubernetes集群上的服务的访问,而无需在通信前进行是否跨集群判定。
示例性系统
图6为根据本申请的一些实施例提供的一种跨Kubernetes集群的通信系统的结构示意图;如图6所示,该跨Kubernetes集群的通信系统包括:请求访问单元601,配置为部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;其中,第一内网IP地址为出口组件在第一Kubernetes集群中的内网IP地址,出口组件部署在第一Kubernetes集群中,用于向第一Kubernetes集群外部发送访问请求,访问请求包括第二服务的域名,第二服务部署在第二Kubernetes集群上;外部转发单元602,配置为出口组件根据第二服务的域名,将访问请求发送至第二Kubernetes集群的入口组件;其中,入口组件部署在第二Kubernetes集群中,用于接收第二Kubernetes集群外部的访问请求;内部转发单元603,配置为入口组件根据第二服务的域名,将访问请求发送至第二服务。
本申请实施例提供的跨Kubernetes集群的通信系统能够实现上述任一实施例的跨Kubernetes集群的通信方法的步骤、流程,并达到相同的技术效果,在此不再一一赘述。
示例性设备
图7为根据本申请的一些实施例提供的电子设备的结构示意图;如图7所示,该电子设备包括:
一个或多个处理器701;
计算机可读介质,可以配置为存储一个或多个程序702,一个或多个处理器701执行一个或多个程序702时,实现如下步骤:部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;其中,第一内网IP地址为出口组件在第一Kubernetes集群中的内网IP地址,出口组件部署在第一Kubernetes集群中,用于向第一Kubernetes集群外部发送访问请求,访问请求包括第二服务的域名,第二服务部署在第二Kubernetes集群上;出口组件根据第二服务的域名,将访问请求发送至第二Kubernetes集群的入口组件;其中,入口组件部署在第二Kubernetes集群中,用于接收第二Kubernetes集群外部的访问请求;入口组件根据第二服务的域名,将访问请求发送至第二服务。
图8为根据本申请的一些实施例提供的电子设备的硬件结构图;如图8所示,该电子设备的硬件结构可以包括:处理器801、通信接口802、计算机可读介质803和通信总线804。
其中,处理器801、通信接口802、计算机可读介质803通过通信总线804完成相互间的通信。
可选地,通信接口802可以为通信模块的接口,如GSM模块的接口。
其中,处理器801具体可以配置为:部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;其中,第一内网IP地址为出口组件在第一Kubernetes集群中的内网IP地址,出口组件部署在第一Kubernetes集群中,用于向第一Kubernetes集群外部发送访问请求,访问请求包括第二服务的域名,第二服务部署在第二Kubernetes集群上;出口组件根据第二服务的域名,将访问请求发送至第二Kubernetes集群的入口组件;其中,入口组件部署在第二Kubernetes集群中,用于接收第二Kubernetes集群外部的访问请求;入口组件根据第二服务的域名,将访问请求发送至第二服务。
处理器可以是通用处理器,包括中央处理器(central processing unit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如:IPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如ipad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如:iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可以将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器存储介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的跨Kubernetes集群的通信方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和涉及约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述得设备及系统实施例仅仅是示意性的,其中作为分离不见说明的单元可以使或者也可以不是物理上分开的,作为单元提示的不见可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上实施方式仅用于说明本申请实施例,而非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专业保护范围应由权利要求限定。
Claims (10)
1.一种跨Kubernetes集群的通信方法,其特征在于,包括:
部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;其中,第一内网IP地址为出口组件在所述第一Kubernetes集群中的内网IP地址,所述出口组件部署在所述第一Kubernetes集群中,用于向所述第一Kubernetes集群外部发送所述访问请求,所述访问请求包括第二服务的域名,所述第二服务部署在第二Kubernetes集群上;
所述出口组件根据所述第二服务的域名,将所述访问请求发送至入口组件;其中,所述入口组件部署在所述第二Kubernetes集群中,用于接收所述第二Kubernetes集群外部的所述访问请求;
所述入口组件根据所述第二服务的域名,将所述访问请求发送至所述第二服务。
2.根据权利要求1所述的通信方法,其特征在于,在所述部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求之前,还包括:
所述第一服务根据所述第二服务的域名,从第一域名解析组件获取所述第一内网IP地址;其中,所述第一域名解析组件部署在所述第一Kubernetes集群上;
相应地,
在所述入口组件根据所述第二服务的域名,将所述访问请求发送至所述第二服务之前,还包括:
所述入口组件根据所述第二服务的域名,从第二域名解析组件获取第二内网IP地址;其中,所述第二内网IP地址为所述第二服务在所述第二Kubernetes集群中的内网IP地址,所述第二域名解析组件部署在所述第二Kubernetes集群上。
3.根据权利要求2所述的通信方法,其特征在于,在所述第一服务根据所述第二服务的域名,从第一域名解析组件获取所述第一内网IP地址之前,还包括:
通过第一API-Server组件从控制组件获取所述第二服务的域名;其中,所述第一API-Server组件部署在所述第一Kubernetes集群上;
将所述第一内网IP地址作为所述第二服务的域名在所述第一Kubernetes集群中对应的内网IP地址,在所述第一域名解析组件中进行注册。
4.根据权利要求3所述的通信方法,其特征在于,在所述出口组件根据所述第二服务的域名,将所述访问请求发送至入口组件之前,还包括:
通过第一API-Server组件从所述控制组件获取所述第二Kubernetes集群的外部访问IP地址;
将所述第二Kubernetes集群的外部访问IP地址作为所述第二服务的域名对应的跨Kubernetes集群访问IP地址,在所述出口组件中进行注册。
5.根据权利要求4所述的通信方法,其特征在于,在所述通过第一API-Server组件从控制组件获取所述第二服务的域名之前,还包括:
所述第二服务通过第二API-Server组件向所述控制组件上报所述第二服务的域名;其中,所述第二API-Server组件部署在所述第二Kubernetes集群上;
所述第二API-Server组件向所述控制组件上报所述第二Kubernetes集群的外部访问IP地址。
6.根据权利要求5所述的通信方法,其特征在于,所述第二服务通过第二API-Server组件向所述控制组件上报所述第二服务的域名,包括:
所述第二服务向所述第二API-Server组件发送所述第二服务的域名和允许接收外部访问请求的标签;
所述第二API-Server组件将所述第二服务的域名转发至所述控制组件和所述入口组件;
所述入口组件将所述第二服务的域名在允许接收外部访问请求的白名单中进行注册;
相应地,所述入口组件根据所述第二服务的域名,将所述访问请求发送至所述第二服务,包括:
所述入口组件基于所述白名单对所述访问请求中的所述第二服务的域名进行权限认证;
认证成功后,将所述访问请求发送至所述第二服务。
7.根据权利要求3-6中任一项所述的通信方法,其特征在于,所述控制组件部署在独立于所述第一Kubernetes集群和所述第二Kubernetes集群之外的控制集群上。
8.一种跨Kubernetes集群的通信系统,其特征在于,包括:
请求访问单元,配置为部署在第一Kubernetes集群上的第一服务向第一内网IP地址发送访问请求;其中,第一内网IP地址为出口组件在所述第一Kubernetes集群中的内网IP地址,所述出口组件部署在所述第一Kubernetes集群中,用于向所述第一Kubernetes集群外部发送所述访问请求,所述访问请求包括第二服务的域名,所述第二服务部署在第二Kubernetes集群上;
外部转发单元,配置为所述出口组件根据所述第二服务的域名,将所述访问请求发送至入口组件;其中,所述入口组件部署在所述第二Kubernetes集群中,用于接收所述第二Kubernetes集群外部的所述访问请求;
内部转发单元,配置为所述入口组件根据所述第二服务的域名,将所述访问请求发送至所述第二服务。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序为如权利要求1-7任一所述的跨Kubernetes集群的通信方法。
10.一种电子设备,其特征在于,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如权利要求1-7任一所述的跨Kubernetes集群的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111370999.5A CN114025021B (zh) | 2021-11-18 | 2021-11-18 | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111370999.5A CN114025021B (zh) | 2021-11-18 | 2021-11-18 | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114025021A true CN114025021A (zh) | 2022-02-08 |
CN114025021B CN114025021B (zh) | 2023-08-08 |
Family
ID=80065254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111370999.5A Active CN114025021B (zh) | 2021-11-18 | 2021-11-18 | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114025021B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726821A (zh) * | 2022-03-07 | 2022-07-08 | 网宿科技股份有限公司 | 容器化后的业务组件的处理方法及组件、系统 |
CN114745380A (zh) * | 2022-03-29 | 2022-07-12 | 阿里巴巴(中国)有限公司 | 基于服务网格的跨私网多集群管理方法及装置 |
CN115086321A (zh) * | 2022-06-14 | 2022-09-20 | 京东科技信息技术有限公司 | 多集群流量转发方法及装置、电子设备 |
WO2023024629A1 (en) * | 2021-08-25 | 2023-03-02 | International Business Machines Corporation | Service access across kubernetes clusters |
CN115988078A (zh) * | 2022-11-28 | 2023-04-18 | 中国联合网络通信集团有限公司 | 通信方法、系统、电子设备及存储介质 |
CN117155934A (zh) * | 2023-10-31 | 2023-12-01 | 北京比格大数据有限公司 | 一种跨集群通信方法及装置、设备及存储介质 |
CN117811838B (zh) * | 2024-02-29 | 2024-05-17 | 博上(山东)网络科技有限公司 | 一种HAProxy服务器IP白名单同步方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200137185A1 (en) * | 2018-10-24 | 2020-04-30 | Hewlett Packard Enterprise Development Lp | Remote service access in a container management system |
CN111770159A (zh) * | 2020-06-26 | 2020-10-13 | 中信银行股份有限公司 | 服务发现系统、方法、第一服务器及存储介质 |
CN112165502A (zh) * | 2020-08-06 | 2021-01-01 | 中信银行股份有限公司 | 服务发现系统、方法及第二服务器 |
CN112671882A (zh) * | 2020-12-18 | 2021-04-16 | 上海安畅网络科技股份有限公司 | 一种基于微服务的同城双活系统和方法 |
CN112751913A (zh) * | 2020-12-22 | 2021-05-04 | 联奕科技股份有限公司 | 一种跨Kubernetes集群的网络通信方法及系统 |
CN113220484A (zh) * | 2021-05-11 | 2021-08-06 | 上海安畅网络科技股份有限公司 | 一种微服务调用方法、装置、电子设备及存储介质 |
-
2021
- 2021-11-18 CN CN202111370999.5A patent/CN114025021B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200137185A1 (en) * | 2018-10-24 | 2020-04-30 | Hewlett Packard Enterprise Development Lp | Remote service access in a container management system |
CN111770159A (zh) * | 2020-06-26 | 2020-10-13 | 中信银行股份有限公司 | 服务发现系统、方法、第一服务器及存储介质 |
CN112165502A (zh) * | 2020-08-06 | 2021-01-01 | 中信银行股份有限公司 | 服务发现系统、方法及第二服务器 |
CN112671882A (zh) * | 2020-12-18 | 2021-04-16 | 上海安畅网络科技股份有限公司 | 一种基于微服务的同城双活系统和方法 |
CN112751913A (zh) * | 2020-12-22 | 2021-05-04 | 联奕科技股份有限公司 | 一种跨Kubernetes集群的网络通信方法及系统 |
CN113220484A (zh) * | 2021-05-11 | 2021-08-06 | 上海安畅网络科技股份有限公司 | 一种微服务调用方法、装置、电子设备及存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023024629A1 (en) * | 2021-08-25 | 2023-03-02 | International Business Machines Corporation | Service access across kubernetes clusters |
CN114726821A (zh) * | 2022-03-07 | 2022-07-08 | 网宿科技股份有限公司 | 容器化后的业务组件的处理方法及组件、系统 |
CN114745380A (zh) * | 2022-03-29 | 2022-07-12 | 阿里巴巴(中国)有限公司 | 基于服务网格的跨私网多集群管理方法及装置 |
CN114745380B (zh) * | 2022-03-29 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 基于服务网格的跨私网多集群管理方法及装置 |
CN115086321A (zh) * | 2022-06-14 | 2022-09-20 | 京东科技信息技术有限公司 | 多集群流量转发方法及装置、电子设备 |
CN115086321B (zh) * | 2022-06-14 | 2024-04-05 | 京东科技信息技术有限公司 | 多集群流量转发方法及装置、电子设备 |
CN115988078A (zh) * | 2022-11-28 | 2023-04-18 | 中国联合网络通信集团有限公司 | 通信方法、系统、电子设备及存储介质 |
CN117155934A (zh) * | 2023-10-31 | 2023-12-01 | 北京比格大数据有限公司 | 一种跨集群通信方法及装置、设备及存储介质 |
CN117155934B (zh) * | 2023-10-31 | 2023-12-29 | 北京比格大数据有限公司 | 一种跨集群通信方法及装置、设备及存储介质 |
CN117811838B (zh) * | 2024-02-29 | 2024-05-17 | 博上(山东)网络科技有限公司 | 一种HAProxy服务器IP白名单同步方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114025021B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114025021B (zh) | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 | |
US11258667B2 (en) | Network management method and related device | |
CN108923908B (zh) | 授权处理方法、装置、设备及存储介质 | |
CN106856434B (zh) | 访问请求转换的方法和装置 | |
WO2021057889A1 (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20200169880A1 (en) | Network service system and network service method | |
WO2019128240A1 (zh) | 一种数据路由方法以及终端 | |
WO2020253631A1 (zh) | Ip地址的配置方法、设备及系统 | |
WO2017041562A1 (zh) | 一种识别终端设备用户身份的方法和装置 | |
CN112799825A (zh) | 一种任务处理方法和网络设备 | |
CN113141405B (zh) | 服务访问方法、中间件系统、电子设备和存储介质 | |
CN114257440B (zh) | 网络功能服务发现方法、系统以及存储介质 | |
WO2022007964A1 (zh) | 测试系统、方法、装置、设备及存储介质 | |
EP4047867A1 (en) | Enhanced authorization in cellular communication networks | |
CN110691110B (zh) | 一种通信方法、装置、系统、终端、设备及介质 | |
CN112312061A (zh) | 一种视频会议方法、装置、电子设备及存储介质 | |
US11595871B2 (en) | Systems and methods for securely sharing context between MEC clusters | |
CN110740464A (zh) | 一种nf服务发现方法及设备 | |
US20140136597A1 (en) | Relay enabled dynamic virtual private network | |
CN113676471B (zh) | 基于容器云平台的跨节点通信方法、系统、介质和电子设备 | |
US10594511B2 (en) | Address system | |
CN116264538A (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
CN114356456A (zh) | 业务处理方法、装置、存储介质和电子设备 | |
WO2021224544A1 (en) | Registration in communication networks | |
CN114979128A (zh) | 跨区域通信方法、装置及电子设备 |
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 |