CN115086321B - 多集群流量转发方法及装置、电子设备 - Google Patents
多集群流量转发方法及装置、电子设备 Download PDFInfo
- Publication number
- CN115086321B CN115086321B CN202210670520.8A CN202210670520A CN115086321B CN 115086321 B CN115086321 B CN 115086321B CN 202210670520 A CN202210670520 A CN 202210670520A CN 115086321 B CN115086321 B CN 115086321B
- Authority
- CN
- China
- Prior art keywords
- domain name
- cluster
- open source
- forwarding
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000003993 interaction Effects 0.000 claims description 67
- 230000002452 interceptive effect Effects 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013475 authorization Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开实施例的目的在于提供一种多集群流量转发方法及装置、电子设备、计算机可读存储介质,涉及容器编排技术领域,所述多集群流量转发方法,包括:解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;获取所述开源集群关联的第一储存信息,其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器。本公开可以在一定程度上改善关于集群规模及多集群服务暴露的问题。
Description
技术领域
本公开涉及容器编排技术领域,具体而言,涉及一种多集群流量转发方法、装置、电子设备以及计算机可读存储介质。
背景技术
随着云原生技术的发展,用于自动部署、拓展和管理容器化应用程序的开源集群作为云原生技术发展的基石,提供了丰富的功能和机制。
现有技术下,为了能够对部署在开源集群上的应用提供访问入口,通常在开源集群上提供信息传输服务(NodePort Service)、负载均衡服务器(LB Service)以及入口(Ingress)等机制和方法。
但在上述方案中,只能解决单集群场景下的服务暴露,不能解决多集群的统一服务暴露的问题,并且,单个开源集群是有规模限制的,从而使得集群规模及多集群服务暴露存在一定的改善空间。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种多集群流量转发方法、装置、电子设备以及计算机可读存储介质,进而至少在一定程度上改善了集群规模及多集群服务暴露的问题。
根据本公开的一个方面,提供多集群流量转发方法,包括:
解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;
获取所述开源集群关联的第一储存信息;其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;
根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器;
通过解析服务器监视所述开源集群中的第一交互接口,并获取所述第一交互接口对应的第一交互接口数据;
根据所述第一交互接口数据确定所述用户请求中包含的第一域名;
根据所述解析服务器解析所述第一域名至所述工作负载服务器;
根据开源集群中的第一交互接口监视所述工作负载服务器中的第二交互接口;
获取所述第二交互接口对应的第二交互接口信息;其中,所述第二交互接口信息包括所述第一域名;
根据所述开源集群中的储存系统储存所述第一域名;
通过所述第二交互接口获取所述第一域名;
在用户信息满足预设条件时,确定转发流量;
根据所述地址信息转发流量至所述工作负载服务器;
在所述用户信息满足对应的授权信息时,确定转发流量;
根据所述开源集群中的入口控制器监视所述开源集群中的第一交互接口;
获取所述第一交互接口对应的第一交互接口数据;其中,所述第一交互接口数据包括第一域名对应的地址信息;
根据所述开源服务器中的访问控制模块及所述地址信息转发流量。
根据本公开的另一个方面,提供一种多集群流量转发装置,包括:
解析域名模块,用于解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;
获取信息模块,用于获取所述开源集群关联的第一储存信息;其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;
转发流量模块,用于根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开示例实施方式所提供的多集群流量转发方法中,可以解析用户请求中包含的第一域名,并在开源集群中标记所述第一域名对应的工作负载服务器;获取开源集群关联的第一储存信息;其中,第一储存信息包括与用户请求对应的用户信息以及第一域名对应的地址信息;根据用户信息及地址信息将流量转发至第一域名对应的工作负载服务器;通过提供统一的全局入口,可以将流量转发到多集群场景下工作集群中的工作负载服务器中,增加了应用服务器的数量,使得可以提供更多的服务,从而在一定程度上改善了集群规模及多集群服务暴露的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例的一种多集群流量转发装置的示例性系统架构的示意图;
图2示意性示出了根据本公开的一个实施例的多集群流量转发方法的流程图;
图3示意性示出了根据本公开的一个实施例中解析第一域名的流程图;
图4示意性示出了根据本公开的一个实施例中获取第一域名的流程图;
图5示意性示出了根据本公开的一个实施例中转发流量的流程图;
图6示意性示出了根据本公开的一个实施例中转发流量的流程图;
图7示意性示出了根据本公开的一个实施例中多集群流量转发方法的展示图;
图8示意性示出了根据本公开的一个实施例中多集群流量转发装置的框图;
图9示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的一种多集群流量转发方法及装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
本公开实施例所提供的多集群流量转发方法可以在服务器105执行,相应的,多集群流量转发装置一般设置于服务器105中。本公开实施例所提供的多集群流量转发方法也可以由终端设备101、102、103执行,相应的,多集群流量转发装置也可以设置于终端设备101、102、103中,本示例性实施例中对此不做特殊限定。
举例而言,在一种示例性实施例中,服务器105可以解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;获取所述开源集群关联的第一储存信息,其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器;最后根据用户输入的第一域名选择应用服务并转发至终端设备101、102、103;由终端设备101、102、103将应用服务呈现给用户,但本领域技术人员容易理解的是,上述应用场景仅是用于举例,本示例性实施例中并不以此为限。
以下对本发明实施例的技术方案的实现细节进行详细阐述:
图2示意性示出了根据本发明的一个实施例的多集群流量转发方法的流程图,该多集群流量转发方法适用于前述实施例中所述的电子设备。参照图2所示,该多集群流量转发方法至少包括步骤S210至步骤S240,详细介绍如下:
步骤S210,解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;
步骤S220,获取所述开源集群关联的第一储存信息,其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;
步骤S230,根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器。
在本公开示例实施方式所提供的多集群流量转发方法中,通过提供统一的全局入口,可以将流量转发到多集群场景下工作集群中的工作负载服务器中,增加了应用服务器的数量,使得可以提供更多的服务,从而在一定程度上改善了集群规模及多集群服务暴露的问题。
下面,在另一实施例中,对上述步骤进行更加详细的说明:
在步骤S210中,解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;其中,所述用户请求可以是用户向服务器转发的操作指令,例如,用户转发指令更新服务器中的储存数据,举例而言,在本示例实施方式中,所述用户请求还可以是用户使用域名访问运行在某一个开源集群中的服务。
其中,所述开源集群可以是CoreOS,在本实施例中,所述开源集群还可以是Kubernetes,举例而言,开源集群可以包括开源主集群(Kubernetes Host Cluster)及开源工作集群(Kubernetes Member Cluster),其中,开源主集群可以是多集群场景下的主集群,主要可以用于多集群的控制和管理,还可以提供全局的服务入口的能力;开源工作集群可以是在多集群场景下的工作集群,可以包括用于运行工作负载;开源主集群中可以包括全局入口域名服务器(Global Ingress DNS Server)、全局Kubernetes API服务器(GlobalKubernetes API Server)、全局入口控制器(Global Ingress Controller)以及身份识别与访问管理(Identity and Access Management,IAM)。
其中,所述第一域名可以是用户所使用的域名,通过解析第一域名可以标记与第一域名对应的工作负载服务器,在本实施例中,还可以将第一域名解析到开源集群中的入口控制器对外可访问的IP(Internet Protocol,网络之间互连的协议)。
其中,所述工作负载服务器可以是Kubernets工作集群中的服务器,还可以是在开源集群中运行工作负载的服务器,所述Kubernets工作集群(Kubernets Member Cluster)可以包括Kubernetes API服务器(Kubernetes API Server)、入口控制器(IngressController)、入口(Ingress)以及Pod,所述Kubernets工作集群可以包括运行用户业务的Kubernetes集群,其中也可以包括用户的负载均衡集群,举例而言,在本实施例中,所述工作负载服务器也可以是在多集群场景下工作集群中的工作负载服务器,工作负载服务器可以用于运行工作负载,还可以用来运行用户业务,例如,每个入口对应的服务应用,以及所述Pod,分别运行不同的程序,例如,第一个入口可能运行的是一个购物车服务,第二个入口后端是运行的订单服务,在本实施例中并不以此为限。
在Kubernetes集群中,所述Pod可以是所有业务类型的基础,也可以是Kubernetes集群管理的最小单位级,它是一个或多个容器的组合。这些容器可以共享存储、网络和命名空间,以及如何运行的规范。在Pod中,所有容器都被同一安排和调度,并运行在共享的上下文中。对于具体应用而言,Pod可以是它们的逻辑主机,Pod还可以包含业务相关的多个应用容器。
在本实施例中,还可以参考图3所示,通过下述步骤S310至步骤S330解析所述第一域名:
在步骤S310中,通过开源集群中的解析服务器监视开源集群中的第一交互接口,并获取所述第一交互接口对应的第一交互接口数据;其中,所述开源集群中的解析服务器中可以实时获取集群数据,例如,所述解析服务器上可以包括原生接口,所述原生接口可以实时获取开源集群数据的变化,举例而言,所述解析服务器通过所述原生接口可以实时获取所有开源集群中的交互接口中的域名,所述解析服务器还可以提供域名解析服务,举例而言,在本实施例中,所述解析服务器可以是全局入口域名服务器(Global Ingress DNSServer),所述解析服务器可以将域名解析到开源集群中的入口控制器对外可访问的IP,所述解析服务器还可以通过所述原生接口监视所述第一交互接口,并且也可以实时获取所述第一交互接口中的数据。
其中,所述第一交互接口可以用来监视工作负载集群中的第二交互接口,也可以用来实时获取所有工作负载集群的入口信息,举例而言,在本实施例中,所述第一交互接口可以是全局Kubernetes API服务器(Global Kubernetes API Server),所述第一交互接口数据可以包括每个运行服务声明的域名信息,还可以包括用户请求中包含的第一域名,可以理解的是,本实施例中并不以此为限。
在步骤S320中,根据所述第一交互接口数据确定所述用户请求中包含的第一域名;其中,所述第一交互接口数据可以包括每个运行服务声明的域名信息,在本实施例中,第一交互接口数据还可以包括所述用户请求中包含的第一域名。举例而言,用户使用域名访问运行在一个开源集群中的服务时,开源集群中的储存系统可以储存域名信息,通过所述第一交互接口可以读取所述储存系统中的域名信息,在获取第一交互接口数据之后,还可以获取用户使用的域名,本实施例中并不以此为限。
在步骤S330中,根据所述解析服务器解析所述第一域名至所述工作负载服务器;例如,在确定用户请求中包含的第一域名时,可以根据所述第一域名标记对应的工作负载服务器,还可以将第一域名解析至标记的工作负载服务器。
在步骤S220中,获取所述开源集群关联的第一储存信息,其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;其中,所述用户请求对应的用户信息可以是用户身份信息,例如,用户的年龄,性别以及身高,还可以是用户信用信息等,在本实施例中,用户信息也可以是用户权限信息,例如,用户通过输入账号及密码,并通过对比第一储存信息中的用户权限信息,判断该用户是否具有权限,所述用户权限信息可以是提前预设在储存系统中的信息,举例而言,用户输入的账号及密码与系统中储存的账号对应的密码不一致,则用户输入的请求无效,即用户没有权限,不能将流量转发至工作负载服务器中,在本实例中并不以此为限。
其中,所述地址信息可以是第一域名所对应的工作负载服务器的地址信息,举例而言,在本实施例中,可以根据所述地址信息标记第一域名对应的工作负载服务器,还可以将流量转发至与第一域名地址信息对应的工作负载服务器。
在上述获取储存信息方式之外,在本实施例方式中,还可以通过开源集群中的第一交互接口监视所述工作负载服务器中的第二交互接口,获取所述第二交互接口对应的第二交互接口信息;其中,所述第二交互接口信息包括所述第一域名,在本实施例中,所述第二交互接口可以是Kubernetes API服务器(Kubernetes API Server),Kubernetes APIServer的功能可以包括提供集群管理的REST API接口、提供其他模块之间的数据交互和通信的枢纽,例如,Kubernetes API Server将收到的REST请求转发到某个Node上的kubelet守护进程的REST端口上,由该kubelet进程负责响应;Kubernetes API Server还可以是资源配额控制的入口,例如,根据Kubernetes API Server可以将流量转发到对应的工作负载服务器。
举例而言,在本实施例中,开源集群中的第一交互接口可以监视各个工作负载集群中的Kubernetes API Server,还可以实时获取Kubernetes API Server中的第一域名,例如,通过Kubernetes的原生接口可以获取Kubernetes API Server中的数据,所述原生接口可以支持watch/list机制,并且可以实时获取Kubernetes集群数据的变化。
在本实施例中,还可以参考图4所示,通过下述步骤S410至步骤S420获取所述第一域名:
在步骤S410中,根据所述开源集群中的储存系统储存所述第一域名;其中,所述储存系统可以用来共享配置,还可以用来服务发现,在本实施例中,所述储存系统还可以用来储存所述第一域名,所述储存系统可以是Etcd,例如,可以通过第一交互接口,和/或第二交互接口可以读取Etcd中的信息,所述Etcd的使用场景默认处理的数据可以包括控制数据,还可以包括应用数据,例如,Etcd的应用场景可以包括服务发现(Service Discovery)、消息发布与订阅、负载均衡、分布式通知与协调、分布式锁及分布式队列、集群监控与Leader竞选等。
在步骤S420中,通过所述第二交互接口获取所述第一域名;其中,所述第二交互接口中的数据可以包括每个运行服务声明的域名信息,在本实施例中,第二交互接口数据还可以包括所述用户请求中包含的第一域名。举例而言,用户使用域名访问运行在一个开源集群中的服务时,开源集群中的储存系统可以储存域名信息,通过所述第二交互接口可以读取所述储存系统中的域名信息,在获取第二交互接口数据之后,还可以获取用户使用的域名,本实施例中并不以此为限。
在步骤S230中,根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器;所述用户信息可以判断是否转发流量,例如,在用户信息满足条件时,可以确定转发流量,所述地址信息可以将流量转发至指定地址。举例而言,在本实施例中,可以将流量转发至根据第一域名标记的工作负载服务器。
参考图5所示,可以通过下述步骤S510至步骤S520转发流量至工作负载服务器:
在步骤S510中,在用户信息满足预设条件时,确定转发流量;其中,所述开源集群包括访问端口,所述访问端口中包括与所述用户信息对应的授权信息。举例而言,在本实施例中,可以在所述用户信息满足对应的授权信息时,确定转发流量。
在步骤S520中,根据所述地址信息转发流量至所述工作负载服务器;其中,所述地址信息可以是第一域名所对应的工作负载服务器的地址信息。举例而言,在本实施例中,可以根据所述地址信息标记第一域名对应的工作负载服务器,还可以将流量转发至与第一域名地址信息对应的工作负载服务器。
具体而言,在本实施例中,还可以参考图6所示,通过步骤S610至步骤S630转发流量:
在步骤S610中,根据所述开源集群中的入口控制器监视所述开源集群中的第一交互接口;其中,所述开源集群中的入口控制器可以包括服务器中的控制端口,还可以包括服务器中的隐藏入口文件。在本实施例中,所述入口控制器还可以是全局入口控制器(GlobalIngress Controller),所述入口控制器可以用来监视所述开源集群中的第一交互接口,还可以用来实时获取所述第一交互接口对应的第一交互接口数据,本实施例中并不以此为限。
在步骤S620中,获取所述第一交互接口对应的第一交互接口数据;其中,所述第一交互接口数据包括第一域名,所述第一交互接口可以是全局Kubernetes API服务器(Global Kubernetes API Server),所述第一交互接口数据可以包括每个运行服务声明的域名信息,还可以包括用户请求中包含的第一域名。
在步骤S630中,根据所述开源集群中的访问控制模块转发流量;其中,所述访问控制模块可以包括用户的授权信息,还可以包括访问控制规则。举例而言,在本实施例中,所述访问控制模块可以是身份识别与访问管理(Identity and Access Management,IAM),所述IAM可以让合适的自然人在恰当的时间通过统一的方式访问授权的信息资产,IAM也可以提供集中式的数字身份管理、认证、授权、审计的模式和平台,所述IAM中可以包括API提供授权验证服务,在本实施例中,可以根据所述IAM模块中配置的访问控制规则进行流量转发。
根据上述步骤,可以将流量转发至对应的工作负载服务器中,例如,通过开源集群提供一个多集群的ingress,为多个集群的ingress提供统一的ingress入口,从而可以实现在多集群场景下的服务暴露。
在本方案的另一实施例中,可以参考图7对上述多集群流量转发方法进一步说明:
Kubernets主集群(Kubernets Host Cluster)可以包括全局入口域名服务器(Global Ingress DNS Server)702、全局Kubernetes API服务器(Global Kubernetes APIServer)703、全局入口控制器(Global Ingress Controller)704以及身份识别与访问管理(IAM)705;Kubernets工作集群(Kubernets Member Cluster)可以包括Kubernetes API服务器(Kubernetes API Server)706、入口控制器(Ingress Controller)707、入口(Ingress)708以及Pod709。
用户(Client)701使用域名访问运行在某一个Kubernets中的服务,全局入口域名服务器(Global Ingress DNS Server)702可以将域名解析到全局入口控制器(GlobalIngress Controller)704的对外可访问的IP,全局入口控制器704根据存储在身份识别与访问管理(IAM)705中的访问控制信息,判断是否转发流量,根据全局Kubernetes API服务器(Global Kubernetes API Server)703储存信息将流量转发到工作集群(KubernetesMember Cluster)的入口控制器(Ingress Controller)707,入口控制器707会根据入口(Ingress)708声明的路由转发规则,进行入口流量的转发,把流量转到对应的KubernetesAPI服务器(Kubernetes API Server)706,根据Kubernetes API服务器706将流量转发到Pod709内的容器;其中,所述容器内运行的各业务自定义的应用服务,会响应用户的流量;其中,每个入口对应的服务应用,以及所述Pod,分别运行不同的程序,例如,第一个入口708可能运行的是一个购物车服务,第二个入口710后端是运行的订单服务。
参考图7所示,其中,控制流量可以包括非用户的业务流量,例如,可以是根据元数据的变更流量,举例而言,在本实施例中,还可以是查询Kubernetes API Server存到Service、Ingress等元数据;数据流量可以包括用户的业务流量,例如,每个容器内运行的各业务自定义的应用服务响应的用户流量,本实施例中并不以此为限。
综上,在本公开示例实施方式所提供的多集群流量转发方法中,可以解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;获取所述开源集群关联的第一储存信息,其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器;通过提供统一的全局入口,可以将流量转发到多集群场景下工作集群中的工作负载服务器中,增加了应用服务器的数量,使得可以提供更多的服务,从而在一定程度上改善了集群规模及多集群服务暴露的问题。
图8示意性示出了根据本发明的一个实施例的多集群流量转发装置的框图。
参照图8所示,根据本发明的一个实施例的多集群流量转发装置800,包括解析域名模块810、获取信息模块820、转发流量模块830。
其中解析域名模块810,用于解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;
获取信息模块820,用于获取所述开源集群关联的第一储存信息,其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;
转发流量模块830,用于根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器。
在本公开的一种示例性实施例中,所述解析域名模块810包括:
监视单元,用于通过所述开源集群中的解析服务器监视开源集群中的第一交互接口,并获取所述第一交互接口对应的第一交互接口数据;
第一域名确定单元,用于根据所述第一交互接口数据确定所述用户请求中包含的第一域名;
解析单元,用于根据所述解析服务器解析所述第一域名至所述工作负载服务器。
在本公开的一种示例性实施例中,所述获取信息模块820包括:
储存单元,用于根据所述开源集群中的储存系统储存所述第一域名;
域名获取单元,用于通过所述第二交互接口获取所述第一域名。
在本公开的一种示例性实施例中,所述转发流量模块830包括:
转发流量单元,用于在用户信息满足预设条件时,确定转发流量;还可以用于根据所述地址信息转发流量至所述工作负载服务器;
监视单元,用于根据所述开源集群中的入口控制器监视所述开源集群中的第一交互接口;
获取单元,用于获取所述第一交互接口对应的第一交互接口数据;其中,所述第一交互接口数据包括第一域名对应的地址信息。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
图9示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图9示出的电子设备的计算机系统900仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统操作所需的各种程序和数据。CPU901、ROM 902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本申请的方法和装置中限定的各种功能。在一些实施例中,计算机系统900还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。本发明的范围仅由所附的权利要求来限制。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (9)
1.一种多集群流量转发的方法,应用于开源集群;其特征在于,包括:
解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器;
获取所述开源集群关联的第一储存信息;其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;
根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器;
其中,所述解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器,包括:
通过所述开源集群中的解析服务器监视所述开源集群中的第一交互接口,并获取所述第一交互接口对应的第一交互接口数据;
根据所述第一交互接口数据确定所述用户请求中包含的第一域名;
根据所述解析服务器解析所述第一域名至所述工作负载服务器。
2.根据权利要求1所述的一种多集群流量转发方法,其特征在于,所述获取与所述开源集群关联的第一储存信息,包括:
根据所述开源集群中的第一交互接口监视所述工作负载服务器中的第二交互接口;
获取所述第二交互接口对应的第二交互接口信息;其中,所述第二交互接口信息包括所述第一域名。
3.根据权利要求2所述的一种多集群流量转发方法,其特征在于,所述获取所述第二交互接口对应的第二交互接口信息,包括:
根据所述开源集群中的储存系统储存所述第一域名;
通过所述第二交互接口获取所述第一域名。
4.根据权利要求1所述的一种多集群流量转发方法,其特征在于,所述根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器,包括:
在用户信息满足预设条件时,确定转发流量;
根据所述地址信息转发流量至所述工作负载服务器。
5.根据权利要求4所述的一种多集群流量转发方法,其特征在于,所述在用户信息满足预设条件时,确定转发流量,包括:
在所述用户信息满足对应的授权信息时,确定转发流量。
6.根据权利要求5所述的一种多集群流量转发方法,其特征在于,根据所述地址信息转发流量至所述工作负载服务器,包括:
根据所述开源集群中的入口控制器监视所述开源集群中的第一交互接口;
获取所述第一交互接口对应的第一交互接口数据;其中,所述第一交互接口数据包括第一域名对应的地址信息;
根据所述开源集群中的访问控制模块及所述地址信息转发流量至所述工作负载服务器。
7.一种多集群流量转发装置;其特征在于,包括:
解析域名模块,用于解析用户请求中包含的第一域名,并在开源集群中标记所述第一域名对应的工作负载服务器;其中,所述解析用户请求中包含的第一域名,并在所述开源集群中标记所述第一域名对应的工作负载服务器,包括:通过所述开源集群中的解析服务器监视所述开源集群中的第一交互接口,并获取所述第一交互接口对应的第一交互接口数据;根据所述第一交互接口数据确定所述用户请求中包含的第一域名;根据所述解析服务器解析所述第一域名至所述工作负载服务器;
获取信息模块,用于获取所述开源集群关联的第一储存信息,其中,所述第一储存信息包括与所述用户请求对应的用户信息以及所述第一域名对应的地址信息;
转发流量模块,用于根据所述用户信息及所述地址信息将流量转发至所述第一域名对应的工作负载服务器。
8.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210670520.8A CN115086321B (zh) | 2022-06-14 | 2022-06-14 | 多集群流量转发方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210670520.8A CN115086321B (zh) | 2022-06-14 | 2022-06-14 | 多集群流量转发方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086321A CN115086321A (zh) | 2022-09-20 |
CN115086321B true CN115086321B (zh) | 2024-04-05 |
Family
ID=83250562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210670520.8A Active CN115086321B (zh) | 2022-06-14 | 2022-06-14 | 多集群流量转发方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086321B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614738A (zh) * | 2020-05-07 | 2020-09-01 | 北京金山云网络技术有限公司 | 基于Kubernetes集群的服务访问方法、装置、设备及存储介质 |
CN112422309A (zh) * | 2019-08-23 | 2021-02-26 | 阿里巴巴集团控股有限公司 | 分布式服务发现的系统及方法、存储介质及终端 |
CN113676564A (zh) * | 2021-09-28 | 2021-11-19 | 深信服科技股份有限公司 | 数据传输方法、装置及存储介质 |
WO2021232243A1 (zh) * | 2020-05-19 | 2021-11-25 | 深圳市欢太科技有限公司 | 集群管理方法、集群管理装置、存储介质与电子设备 |
CN114025021A (zh) * | 2021-11-18 | 2022-02-08 | 上海道客网络科技有限公司 | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 |
CN114070889A (zh) * | 2021-11-10 | 2022-02-18 | 北京百度网讯科技有限公司 | 配置方法、流量转发方法、设备、存储介质及程序产品 |
CN114143313A (zh) * | 2021-11-30 | 2022-03-04 | 招商局金融科技有限公司 | 基于云原生的集群通信装置、方法及相关设备 |
CN114153566A (zh) * | 2021-12-20 | 2022-03-08 | 浪潮电子信息产业股份有限公司 | 跨处理器架构多容器集群间服务发现方法、装置及设备 |
CN114301980A (zh) * | 2021-12-28 | 2022-04-08 | 中国电信股份有限公司 | 容器集群的调度方法、装置、系统及计算机可读介质 |
CN114500537A (zh) * | 2022-03-24 | 2022-05-13 | 杭州博盾习言科技有限公司 | 容器服务的访问方法、系统、存储介质及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11218418B2 (en) * | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
US11329882B2 (en) * | 2019-04-25 | 2022-05-10 | Juniper Networks, Inc. | Multi-cluster configuration controller for software defined networks |
US11157304B2 (en) * | 2019-11-01 | 2021-10-26 | Dell Products L.P. | System for peering container clusters running on different container orchestration systems |
-
2022
- 2022-06-14 CN CN202210670520.8A patent/CN115086321B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422309A (zh) * | 2019-08-23 | 2021-02-26 | 阿里巴巴集团控股有限公司 | 分布式服务发现的系统及方法、存储介质及终端 |
CN111614738A (zh) * | 2020-05-07 | 2020-09-01 | 北京金山云网络技术有限公司 | 基于Kubernetes集群的服务访问方法、装置、设备及存储介质 |
WO2021232243A1 (zh) * | 2020-05-19 | 2021-11-25 | 深圳市欢太科技有限公司 | 集群管理方法、集群管理装置、存储介质与电子设备 |
CN113676564A (zh) * | 2021-09-28 | 2021-11-19 | 深信服科技股份有限公司 | 数据传输方法、装置及存储介质 |
CN114070889A (zh) * | 2021-11-10 | 2022-02-18 | 北京百度网讯科技有限公司 | 配置方法、流量转发方法、设备、存储介质及程序产品 |
CN114025021A (zh) * | 2021-11-18 | 2022-02-08 | 上海道客网络科技有限公司 | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 |
CN114143313A (zh) * | 2021-11-30 | 2022-03-04 | 招商局金融科技有限公司 | 基于云原生的集群通信装置、方法及相关设备 |
CN114153566A (zh) * | 2021-12-20 | 2022-03-08 | 浪潮电子信息产业股份有限公司 | 跨处理器架构多容器集群间服务发现方法、装置及设备 |
CN114301980A (zh) * | 2021-12-28 | 2022-04-08 | 中国电信股份有限公司 | 容器集群的调度方法、装置、系统及计算机可读介质 |
CN114500537A (zh) * | 2022-03-24 | 2022-05-13 | 杭州博盾习言科技有限公司 | 容器服务的访问方法、系统、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115086321A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200213404A1 (en) | Integrated user interface for consuming services across different distributed networks | |
US11687545B2 (en) | Conversation context profiles for use with queries submitted using social media | |
US20200412538A1 (en) | Serverless connected app design | |
US20210142206A1 (en) | Adaptation of machine learning algorithms | |
CN105324750B (zh) | 开发环境系统、开发环境装置以及开发环境提供方法 | |
WO2018206405A1 (en) | Interoperation of machine learning algorithms | |
WO2018206374A1 (en) | Load balancing of machine learning algorithms | |
CN112632919B (zh) | 一种文档编辑方法、装置、计算机设备和存储介质 | |
CN103973770A (zh) | 信息处理系统 | |
US20180033075A1 (en) | Automatic recharge system and method, and server | |
US20050210474A1 (en) | Tunable engine, method and program product for resolving prerequisites for client devices in an open service gateway initiative (OSGi) framework | |
CN113204425B (zh) | 供进程管理内部线程的方法、装置、电子设备及存储介质 | |
CN110674426B (zh) | 网页行为上报方法和装置 | |
CN115086321B (zh) | 多集群流量转发方法及装置、电子设备 | |
CN113971191A (zh) | 一种数据导入方法、装置和计算机可读存储介质 | |
WO2022188509A1 (zh) | 分布式环境下的任务处理方法、装置、电子设备和介质 | |
CN115174248A (zh) | 一种网络访问的控制方法及装置 | |
WO2021232860A1 (zh) | 通信方法、装置及系统 | |
CN114816361A (zh) | 拼搭工程生成方法、装置、设备、介质和程序产品 | |
CN112905970A (zh) | 权限校验方法、装置、计算机可读存储介质及电子设备 | |
CN111091899A (zh) | 权限分配方法及装置、电子设备和计算机可读存储介质 | |
US11941543B2 (en) | Inferencing endpoint discovery in computing systems | |
CN115987782B (zh) | 云主机名的生成方法、装置、设备、存储介质和程序产品 | |
US8214499B2 (en) | System and method for enabling software applications as a service in a non-intrusive manner | |
CN114615138A (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 |