CN116418724A - 服务访问方法、装置及负载均衡系统 - Google Patents

服务访问方法、装置及负载均衡系统 Download PDF

Info

Publication number
CN116418724A
CN116418724A CN202111663435.0A CN202111663435A CN116418724A CN 116418724 A CN116418724 A CN 116418724A CN 202111663435 A CN202111663435 A CN 202111663435A CN 116418724 A CN116418724 A CN 116418724A
Authority
CN
China
Prior art keywords
access
address
service
load balancing
bgp
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.)
Pending
Application number
CN202111663435.0A
Other languages
English (en)
Inventor
赵奇慧
吴平松
陈鹏翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Communications Ltd Research Institute filed Critical China Mobile Communications Group Co Ltd
Priority to CN202111663435.0A priority Critical patent/CN116418724A/zh
Publication of CN116418724A publication Critical patent/CN116418724A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种服务访问方法、装置及负载均衡系统。所述方法包括:根据外部网络入向控制器实例所在节点的网络地址,向BGP路由设备发布BGP等价路由;接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。采用该方法,通过向BGP路由设备发布静态路由,使得BGP路由设备根据Ingress controller pod所在节点的网络地址,能够将访问服务的流量信息转发至集群节点,实现K8S集群外部对集群内部访问的流量引入。

Description

服务访问方法、装置及负载均衡系统
技术领域
本发明涉及云计算技术领域,尤其是指一种服务访问方法、装置及负载均衡系统。
背景技术
Kubernetes(简写K8S)是开源界集群管理、容器编排的事实标准,主要管理对象包含集群中的节点Node、容器Pod和服务Service等。其中,Node是一台物理机或一台虚拟机,提供应用运行所需的底层基础设施资源;Pod是一组容器进程,即包含一个或多个紧密相关的用户业务/服务容器,运行在Node上;Service是一层服务抽象,其关联了一组功能相同的Pod,并定义了访问这些Pod的策略,提供稳定的服务访问地址及端口IP:Port。
K8S集群内,Pod可通过3/4层寻址(IP:Port)访问集群内的目的Pod,也可通过访问服务集群地址及端口Service Cluster IP:Port实现其后端目的Pod的访问。Pod、Service均使用K8S集群内部网络,不支持集群外部访问。
实际环境中,服务访问端常从K8S集群外部访问集群内部的服务,因此K8S内部的服务需要实现集群外部的访问。
发明内容
本发明技术方案的目的是提供一种服务访问方法、装置及负载均衡系统,用于实现K8S集群外部对集群内部的访问。
本发明实施例提供一种服务访问方法,其中,所述方法包括:
根据外部网络入向控制器实例所在节点的网络地址,向边界网关协议路由设备发布边界网关协议等价路由;
接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;
根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。
可选地,所述的服务访问方法,其中,所述方法还包括:
为所述服务配置所述负载均衡访问地址;
其中,所述负载均衡访问地址包括IP地址和负载均衡端口地址。
可选地,所述的服务访问方法,其中,所述根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
判断所述流量信息的目的访问地址是否为所述负载均衡访问地址;
在所述流量信息的目的访问地址为所述负载均衡访问地址时,将所述流量信息转发给所述至少一容器组。
可选地,所述的服务访问方法,其中,所述将所述流量信息转发给所述至少一容器组,包括:
将所述流量信息通过三层与四层寻址转发给所述至少一容器组。
可选地,所述的服务访问方法,其中,所述目的访问地址包括第一IP地址和第一负载均衡端口地址,所述根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
将所述流量信息转发给具有所述第一IP地址和所述第一负载均衡端口地址的所述至少一容器组。
本发明实施例还提供一种负载均衡系统,包括K8S集群,其中,所述K8S集群包括:
至少一节点、部署于所述节点上的外部网络入向控制器实例和部署于所述节点上的至少一容器组;
所述外部网络入向控制器实例用于根据所述外部网络入向控制器实例所在节点的网络地址,向边界网关协议BGP路由设备发布BGP等价路由;接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;以及根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。
可选地,所述的负载均衡系统,其中,所述K8S集群包括多个节点,每一所述节点上分别部署外部网络入向控制器实例和至少一容器组;
其中,多个节点上所部署的多个容器组关联同一所述服务,每一所述节点上部署的外部网络入向控制器实例根据相应所述外部网络入向控制器实例所在节点的网络地址,分别向BGP路由设备发布BGP等价路由。
可选地,所述的负载均衡系统,其中,所述负载均衡系统还包括BGP路由设备,用于在接收到访问服务后,根据所接收的BGP路由设备发布BGP等价路由,向不同节点上的所述外部网络入向控制器实例分别发送所述访问服务的流量信息。
可选地,所述的负载均衡系统,其中,所述外部网络入向控制器实例还用于,为所述服务配置所述负载均衡访问地址;
其中,所述负载均衡访问地址包括IP地址和负载均衡端口地址。
可选地,所述的负载均衡系统,其中,所述外部网络入向控制器实例包括:
流量监控单元,用于在接收所述BGP路由设备转发的流量信息后,根据所述流量信息的目的访问地址,判断所述流量信息的目的访问地址是否为所述负载均衡访问地址;
转发单元,用于在所述流量信息的目的访问地址为所述负载均衡访问地址时,将所述流量信息转发给所述至少一容器组。
可选地,所述的负载均衡系统,其中,所述转发单元在将所述流量信息转发给所述至少一容器组时,将所述流量信息通过三层与四层寻址转发给所述至少一容器组。
本发明实施例还提供一种服务访问装置,其中,所述装置包括:
信息发布单元,用于根据外部网络入向控制器实例所在节点的网络地址,向边界网关协议BGP路由设备发布BGP等价路由;
流量接收单元,用于接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;
流量转发单元,用于根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。
本发明实施例还提供一种网络设备,其中,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上任一项所述的服务访问方法。
本发明实施例还提供一种可读存储介质,其中,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如上任一项所述的服务访问方法中的步骤。
本发明上述技术方案中的至少一个具有以下有益效果:
本发明实施例所述负载均衡系统,Ingress controller pod作为负载均衡LoadBalancer提供方,通过向BGP路由设备发布静态路由,BGP路由设备根据该路由,能够将访问服务的流量信息转发至集群节点,Ingress controller pod获得到达集群节点的流量信息,实现K8S集群外部对集群内部访问的流量引入。
附图说明
图1为本发明实施例所述负载均衡系统的结构示意图;
图2为本发明实施例所述服务访问方法的流程示意图;
图3为本发明实施例所述服务访问装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
为实现K8S集群外部对集群内部的访问,本发明实施例提供一种服务访问方法及负载均衡系统,通过向边界网关协议BGP路由设备发布静态路由,使得BGP路由设备根据至少一容器组pod所提供服务的负载均衡访问地址和外部网络入向控制器实例Ingresscontroller pod所在节点的网络地址,能够将访问服务的流量信息转发至集群节点,Ingress controller pod获得到达集群节点的流量信息,实现K8S集群外部对集群内部访问的流量引入。
如图1所为本发明其中一实施例所提供负载均衡系统的结构示意图。本发明实施例中,所述负载均衡系统包括K8S集群Cluster 100;其中,K8S集群Cluster100包括至少一节点Node110、部署于Node 110上的外部网络入向控制器实例Ingress controller pod120和至少一容器组Pod 130;
其中,所述Ingress controller pod 120用于根据所述外部网络入向控制器实例Ingress controller pod 120所在节点的网络地址,向边界网关协议路由BGP设备200发布边界网关协议BGP等价路由;接收边界网关协议BGP路由设备200根据所述边界网关协议BGP等价路由转发的访问服务的流量信息;以及根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组Pod 130;其中,所述至少一容器组Pod 130相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。
需要说明的是,本发明实施例中,以下描述中的Ingress controller pod可以称为外部网络入向控制器实例,Pod可以称为容器组。
采用本发明实施例所述负载均衡系统,通过向BGP路由设备200发布静态路由,BGP路由设备200根据该路由,能够将访问服务的流量信息转发至集群节点,Ingresscontroller pod 120获得到达集群节点的流量信息,实现K8S集群外部对集群内部访问的流量引入。
所述负载均衡系统中,Node为物理机或虚拟机,用于提供应用运行所需的底层基础设施资源,通过主机网络连接于外部网络上,每一Node分别被分配网络地址;部署于Node上的Pod为一组容器进程,即包含一个或多个紧密相关的用户业务/服务容器;服务Service为一层服务抽象,关联一组功能相同的Pod,并定义了访问所关联Pod的策略,提供稳定的服务访问地址。
K8S集群内,Pod可通过3/4层寻址(包括IP地址和负载均衡端口地址)访问集群内的目的Pod,也可通过服务访问地址实现Service所关联Pod的访问。Pod、Service均使用K8S集群内部网络,不支持集群外部访问。举例说明,如图1所示,在为Service配置的服务访问地址为182.92.0.182:80的情况下,集群内的任一Pod通过服务访问地址182.92.0.182:80,采用3/4层寻址方式,访问到集群内部与该Service相关联的Pod;其中,服务访问地址182.92.0.182:80中的182.92.0.182为IP地址;80为端口地址。
基于该K8S集群Cluster的网络架构,现有技术实现集群外部访问时,通常包括以下几种方式:
第一种方式,NodePort方式:通过配置Service的类型为NodePort,在所有Node上为该Service开放一个特定端口(Port),任何发送到该端口的流量都被转发到该Service,然后分发给Service关联的后端Pod处理。由于Node使用节点网络,是集群外部的网络,因此该种方式可以将K8S内部服务暴露给集群外部网络,从而实现从集群外访问集群内服务。采用该方式存的缺点是由于可以使用的端口号(范围为30000-32767)有限,仅支持有限数量的Service向集群外部暴露。当K8S集群内部对外提供服务的Service数量增多时,采用该方式则该方式则无法实现。而且,由于Service的访问将与Node节点绑定,节点故障将导致Service无法被访问,Service暴露的可靠性受影响。例如,在选择某一Node IP地址和NodePort端口号来暴露Service,若该Node发生故障或IP发生变化,原Node IP+NodePort端口号将无法继续正常访问服务。
第二种方式,LoadBalance方式:通过配置Service类型为负载均衡LoadBalancer,支持提供负载均衡的公有云服务商会自动创建一个负载均衡器,并自动与Service关联,这样从外部访问负载均衡的流量会最终转发给Service关联的后端Pod。然而,采用该方式,对外部公有云有较强依赖性,另外Service的暴露完全依赖于公有云负载均衡器,独立性较差。而且,公有云负载均衡器属于可订购服务,Service使用该服务需要购买,并为负载均衡产品、转发流量、带宽等付费,成本较高。
第三种方式,Ingress方式:公开从集群外部到集群内部服务的HTTP和HTTPS路由,通过K8S生成Ingress并配置目标Service,Ingress可为Service指定域名,并直接公开到集群外部供访问。采用该方式实现集群外部访问,仅支持七层调度和负载均衡,无法实现三层或四层负载均衡。而通信应用场景中,三层或四层负载均衡较为常见。因此,Ingress无法满足网络中三层/四层寻址的需求。
根据以上K8S集群Cluster实现集群外部访问的方式,现有技术无法实现一种基于本地、不受Node端口数量限制且支持三层/四层寻址的集群外访问集群内的服务方式。
本发明实施例所述负载均衡系统中,Ingress controller pod 120配置Service的负载均衡访问地址,并根据所在节点的网络地址向BGP路由设备200发布静态路由,使BGP路由设备200能够根据负载均衡访问地址和Ingress controller pod120所在节点的网络地址,将访问服务的流量信息转发至集群节点,Ingress controller pod 120获得到达集群节点的流量信息,实现K8S集群外部对集群内部访问的流量引入。采用该方式,集群外部访问的实现,不依赖于Service所在Node的特定端口实现,且通过负载均衡访问地址和Ingress controller pod 120所在节点的网络地址,通过三层或四层转发,能够将集群外部对集群内部访问的流量发送至与Service相关联的至少一pod,因此提供了一种基于本地、不受Node端口数量限制且支持三层/四层寻址的集群外访问集群内的服务方式。
因此,本发明实施例中,采用Ingress controller pod实现负载均衡,通过主机网络获取外部流量,并通过BGP协议对外发布主机IP,在打通内外部流量访问的同时,可以避免占用Node节点端口,且保证向集群外部暴露的Service服务数量将不受限制。
可选地,本发明实施例中,根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
监听所述边界网关协议路由设备转发的目的访问地址为所述负载均衡访问地址的流量信息;
将所监听到的所述流量信息转发给所述至少一容器组。
具体地,采用上述方式过程中,通过判断所述流量信息的目的访问地址是否为所述负载均衡访问地址;在所述流量信息的目的访问地址为所述负载均衡访问地址时,将所述流量信息转发给所述至少一容器组。
可选地,所述将所监听到的所述流量信息转发给所述至少一容器组,包括:
将所监听到的所述流量信息通过三层与四层寻址转发给所述至少一容器组。本发明实施例中,可选地,如图1所示,在负载均衡系统中,Ingress controller pod120使用主机网络(hostnetwork)创建,该Ingress controller pod 120可以直接使用主机的网卡,并接受访问主机的流量。也即,采用该方式,Ingress controller pod120可以利用Node110所在网络创建,与BGP路由设备200之间建立等价路由的地址可以采用Node110的网络地址。举例说明,其中一Node110的网络地址为192.168.32.1时,Ingress controller pod 120利用192.168.32.1与BGP路由设备200建立BGP对等体peer。
另一实施方式,可选地,在负载均衡系统中,创建Service时配置为负载均衡LoadBalancer类型,并指定负载均衡地址的负载均衡端口;例如,该负载均衡端口为80。进一步地,Ingress controller pod 120还为Service配置负载均衡访问地址。可选地,该负载均衡访问地址包括IP地址和负载均衡端口地址。举例说明,所配置的负载均衡访问地址为182.92.0.182:80,其中182.92.0.182为负载均衡访问地址的IP地址,80为负载均衡端口地址的负载均衡端口地址,通过182.92.0.182:80表示可以被访问的Service。
采用该实施方式,本地使用Ingress controller pod 120作为负载均衡LoadBalancer提供方,监听目的地址为Service的负载均衡访问地址182.92.0.182:80的流量,将所监听到的流量转发至与Service后端的至少一pod130,也即将所监听到的流量转发至Service关联的至少一pod 130。结合图1所示,本发明实施例中,可选地,所述K8S集群Cluster包括多个Node 110,每一所述Node 110上分别部署Ingress controller pod 120和至少一Pod 130;
其中,多个Node110上所部署的多个pod 130组成同一Service,所述Service的类型为负载均衡,每一Node 110上部署的Ingress controller pod 120根据所述Service的负载均衡访问地址和相应Ingress controller pod 120所在节点的网络地址,分别向BGP路由设备200发布BGP等价路由。
举例说明,根据图1所示,在多个Node 110中,部署于第一Node中的Pod_1与Pod_2,与部署于第二Node中的Pod_3均关联同一Service。其中,不同Pod具有不同Pod地址。例如,Pod_1的Pod地址为10.32.1.1:80,Pod_2的Pod地址为10.32.1.2:80,Pod_3的Pod地址为10.32.1.10:80,该三个Pod关联同一Service,且所述Service的类型为负载均衡。
可选地,多个Node 110中,其中一Node 110上部署的Ingress controller pod120为Service配置负载均衡访问地址。每一Node 110上部署的Ingress controller pod 120分别与BGP路由设备200之间建立等价路由。其中,所述BGP等价路由指示访问服务的目的访问地址为负载均衡访问地址时,BGP路由设备200的下一跳地址为Ingress controller pod120所在节点的网络地址。
本发明实施例中,可选地,BGP路由设备200在接收到访问服务后,所述访问服务的目的访问地址为所述负载均衡访问地址时,向不同Node上的所述Ingress controller pod分别发送流量信息。
采用该方式,通过在多个Node上部署Ingress controller pod 120,不同Node上部署的Ingress controller pod 120分别与BGP路由设备200之间建立等价路由,BGP路由设备200可以向不同Node上的Ingress controller pod 120分别发送流量信息,以避免Node故障导致Ingress controller pod 120无法被访问的问题,并满足集群外访问的可靠性要求。
本发明实施例中,每一Node 110上部署的Ingress controller pod 120根据相应Ingress controller pod 120所在节点的网络地址,分别向BGP路由设备200发布BGP等价路由时,在BGP路由设备200上的BGP路由,接收外部访问服务的目的访问地址为Service的负载均衡访问地址时,下一跳的地址为该不同Node110的Ingress controller pod 120所在节点的网络地址。
举例说明,如图1所示,第一Node所部署的Ingress controller pod 120,所在节点的网络地址为192.168.32.1,第二Node所部署的Ingress controller pod 120,所在节点的网络地址为192.168.32.2时,BGP路由设备200上的BGP路由,接收外部访问服务的目的访问地址为Service的负载均衡访问地址,本发明实施例中,如为182.92.0.182:80的情况下,BGP路由设备200向K8S集群Cluster转发流量的下一跳地址为192.168.32.1和/或192.168.32.2。
本发明实施例所述负载均衡系统,Ingress controller pod 120通过为Service配置负载均衡访问地址,且Ingress controller pod 120与BGP路由设备200之间建立等价路由,BGP路由设备200可以将集群外部访问的流量转发给至少一Node 110,该Node 110上的Ingress controller pod 120可以获取该流量,从而实现集群外部流量进入集群内部。
相应的,获取该外部流量的Ingress controller pod 120还用于,将所接收的流量信息转发给至少一pod 130;其中,所述至少一pod 130组成所述Service,且所述Service的类型为负载均衡。
可选地,所述Ingress controller pod 120包括:
流量监控单元,用于在接收所述BGP路由设备转发的流量信息后,判断所述流量信息的目的访问地址是否为所述负载均衡访问地址;
转发单元,用于在所述流量信息的目的访问地址为所述负载均衡访问地址时,将所述流量信息转发给所述至少一容器组。
其中,所述转发单元在将所述流量信息转发给所述至少一容器组时,将所述流量信息通过三层与四层寻址转发给所述至少一容器组。
也即,通过流量监控单元监控目的访问地址为所述负载均衡访问地址的流量信息,转发单元将所监听到的所述流量信息通过三层与四层寻址转发给所述至少一pod。可选地,所述目的访问地址包括第一IP地址和第一负载均衡端口地址,所述根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
将所述流量信息转发给具有所述第一IP地址和所述第一负载均衡端口地址的所述至少一容器组。
采用该实施方式,Ingress不再使用七层调度和负载均衡,通过Ingresscontroller pod实现了网络的3/4层负载均衡,弥补了Ingress仅支持七层负载均衡的缺陷。
以下结合图1,在第一Node所部署的Ingress controller pod 120,所在节点的网络地址为192.168.32.1,第二Node所部署的Ingress controller pod 120,所在节点的网络地址为192.168.32.2,Ingress controller pod 120为Service所配置的负载均衡访问地址为182.92.0.182:80的情况下,采用本发明实施例所述负载均衡系统实现集群外部访问的具体实施过程,包括:
Ingress controller pod 120为Service配置负载均衡访问地址:182.92.0.182:80;
第一Node和第二Node上所部署的Ingress controller pod 120分别与BGP路由设备200建立BGP peer,并发布等价路由,所建立的等价路由包括:
1)目的地址为:182.92.0.182,下一跳地址为192.168.32.1;
2)目的地址为:182.92.0.182,下一跳地址为192.168.32.2。
BGP路由设备200接收外部访问服务的地址为182.92.0.182(第一IP地址):80(第一负载均衡端口地址)时,BGP路由设备200向K8S集群Cluster转发流量的下一跳地址为192.168.32.1和/或192.168.32.2;
Ingress controller pod 120获取该流量信息,将所获取的流量信息通过三层与四层寻址转发给至少一pod,如转发至Pod地址为10.32.1.1:80的Pod_1、Pod地址为10.32.1.2:80的Pod_2和/或Pod地址为10.32.1.10:80的Pod_3。其中,该Pod_1、Pod_2和Pod_3通过负载均衡端口80与Service相关联。
基于上述实施过程,Ingress controller pod能够监听负载均衡地址182.92.0.182:80,完成流量内部的转发。
本发明实施例所述负载均衡系统,Ingress controller pod通过向外部路由设备发布BGP静态路由,路由设备根据规则将访问服务的流量转发到集群节点,ingresscontroller pod获取到达集群节点的流量,从而实现外部访问流量的引入;此外,采用本发明实施例所述负载均衡系统,采用本地Ingress controller pod为服务Service的关联pod提供负载均衡服务,包括分配服务的负载均衡访问地址、根据负载均衡规则向后端pod分发流量等,实现3/4层负载均衡。
因此,采用本发明实施例所述负载均衡系统,通过使用本地Ingress controllerpod为后端服务提供本地负载均衡,可避免对外部公有云负载均衡的依赖,并达到节约成本的效果。
本发明实施例另一方面还提供一种服务访问方法,如图2所示,所述方法包括:
S210,根据外部网络入向控制器实例所在节点的网络地址,向边界网关协议BGP路由设备发布边界网关协议BGP等价路由;
S220,接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;
S230,根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。采用本发明实施例所述服务访问方法,通过向BGP路由设备发布静态路由,BGP路由设备根据该路由,能够将访问服务的流量信息转发至集群节点,Ingresscontroller pod获得到达集群节点的流量信息,实现K8S集群外部对集群内部访问的流量引入。
可选地,所述的服务访问方法,其中,所述方法还包括:
为所述服务配置所述负载均衡访问地址;
其中,所述负载均衡访问地址包括IP地址和负载均衡端口地址。
可选地,所述的服务访问方法,其中,所述根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
判断所述流量信息的目的访问地址是否为所述负载均衡访问地址;
在所述流量信息的目的访问地址为所述负载均衡访问地址时,将所述流量信息转发给所述至少一容器组。
可选地,所述的服务访问方法,其中,所述将所述流量信息转发给所述至少一容器组,包括:
将所述流量信息通过三层与四层寻址转发给所述至少一容器组。
可选地,所述的服务访问方法,其中,所述目的访问地址包括第一IP地址和第一负载均衡端口地址,所述根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
将所述流量信息转发给具有所述第一IP地址和所述第一负载均衡端口地址的所述至少一容器组。
可选地,所述的服务访问方法,其中,所述BGP等价路由指示所述访问服务的目的访问地址为所述负载均衡访问地址时,所述BGP路由设备的下一跳地址为所述Ingresscontroller pod所在节点的网络地址。
具体地,采用本发明实施例所述服务访问方法,实现集群外部访问的具体实施方式,可以结合图1并参阅上述负载均衡系统的详细说明,在此不再说明。
本发明实施例还提供一种服务访问装置,如图3所示,该服务访问装置300包括:
信息发布单元310,用于根据外部网络入向控制器实例所在节点的网络地址,向边界网关协议BGP路由设备发布边界网关协议BGP等价路由;
流量接收单元320,用于接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;
流量转发单元330,用于根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。
可选地,所述的服务访问装置,其中,所述装置还包括:
配置单元340,用于为所述服务配置所述负载均衡访问地址;
其中,所述负载均衡访问地址包括IP地址和负载均衡端口地址。
可选地,所述的服务访问装置,其中,所述流量转发单元330根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
判断所述流量信息的目的访问地址是否为所述负载均衡访问地址;
在所述流量信息的目的访问地址为所述负载均衡访问地址时,将所述流量信息转发给所述至少一容器组。
可选地,所述的服务访问装置,其中,所述流量转发单元330将所述流量信息转发给所述至少一容器组,包括:
将所述流量信息通过三层与四层寻址转发给所述至少一容器组。
可选地,所述的服务访问方法,其中,所述目的访问地址包括第一IP地址和第一负载均衡端口地址,所述流量转发单元330根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
将所述流量信息转发给具有所述第一IP地址和所述第一负载均衡端口地址的所述至少一容器组。
本发明其中一实施例还提供一种网络设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上任一项所述的服务访问方法。
其中,处理器执行程序时实现上述服务访问方法的具体实施方式可以参阅以上的描述,在此不再详细说明。
另外,本发明具体实施例还提供一种可读存储介质,其上存储有程序,其中,该程序被处理器执行时实现如上中任一项所述的服务访问方法中的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述原理前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种服务访问方法,其特征在于,所述方法包括:
根据外部网络入向控制器实例所在节点的网络地址,向边界网关协议BGP路由设备发布边界网关协议BGP等价路由;
接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;
根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。
2.根据权利要求1所述的服务访问方法,其特征在于,所述方法还包括:
为所述服务配置所述负载均衡访问地址;
其中,所述负载均衡访问地址包括IP地址和负载均衡端口地址。
3.根据权利要求2所述的服务访问方法,其特征在于,所述根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
判断所述流量信息的目的访问地址是否为所述负载均衡访问地址;
在所述流量信息的目的访问地址为所述负载均衡访问地址时,将所述流量信息转发给所述至少一容器组。
4.根据权利要求3所述的服务访问方法,其特征在于,所述将所述流量信息转发给所述至少一容器组,包括:
将所述流量信息通过三层与四层寻址转发给所述至少一容器组。
5.根据权利要求2所述的服务访问方法,其特征在于,所述目的访问地址包括第一IP地址和第一负载均衡端口地址,所述根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组,包括:
将所述流量信息转发给具有所述第一IP地址和所述第一负载均衡端口地址的所述至少一容器组。
6.一种负载均衡系统,包括K8S集群,其特征在于,所述K8S集群包括:
至少一节点、部署于所述节点上的外部网络入向控制器实例和部署于所述节点上的至少一容器组;
所述外部网络入向控制器实例用于根据所述外部网络入向控制器实例所在节点的网络地址,向边界网关协议BGP路由设备发布边界网关协议BGP等价路由;接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;以及根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。
7.根据权利要求6所述的负载均衡系统,其特征在于,所述K8S集群包括多个节点,每一所述节点上分别部署外部网络入向控制器实例和至少一容器组;
其中,多个节点上所部署的多个容器组关联同一所述服务,每一所述节点上部署的外部网络入向控制器实例用于根据相应所述外部网络入向控制器实例所在节点的网络地址,分别向BGP路由设备发布BGP等价路由。
8.根据权利要求7所述的负载均衡系统,其特征在于,所述负载均衡系统还包括BGP路由设备,用于在接收到访问服务后,根据所接收的BGP路由设备发布BGP等价路由,向不同节点上的所述外部网络入向控制器实例分别发送所述访问服务的流量信息。
9.根据权利要求6所述的负载均衡系统,其特征在于,所述外部网络入向控制器实例还用于为所述服务配置所述负载均衡访问地址;
其中,所述负载均衡访问地址包括IP地址和负载均衡端口地址。
10.根据权利要求6所述的负载均衡系统,其特征在于,所述外部网络入向控制器实例包括:
流量监控单元,用于在接收所述BGP路由设备转发的流量信息后,根据所述流量信息的目的访问地址,判断所述流量信息的目的访问地址是否为所述负载均衡访问地址;
转发单元,用于在所述流量信息的目的访问地址为所述负载均衡访问地址时,将所述流量信息转发给所述至少一容器组。
11.根据权利要求10所述的负载均衡系统,其特征在于,所述转发单元在将所述流量信息转发给所述至少一容器组时,将所述流量信息通过三层与四层寻址转发给所述至少一容器组。
12.一种服务访问装置,其特征在于,所述装置包括:
信息发布单元,用于根据外部网络入向控制器实例所在节点的网络地址,向边界网关协议BGP路由设备发布边界网关协议BGP等价路由;
流量接收单元,用于接收所述BGP路由设备根据所述BGP等价路由转发的访问服务的流量信息;
流量转发单元,用于根据所述流量信息的目的访问地址,将所述流量信息转发给至少一容器组;其中,所述至少一容器组相关联的服务的负载均衡访问地址为所述目的访问地址,所述服务的类型为负载均衡类型。
13.一种网络设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至5任一项所述的服务访问方法。
14.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至5任一项所述的服务访问方法中的步骤。
CN202111663435.0A 2021-12-31 2021-12-31 服务访问方法、装置及负载均衡系统 Pending CN116418724A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111663435.0A CN116418724A (zh) 2021-12-31 2021-12-31 服务访问方法、装置及负载均衡系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111663435.0A CN116418724A (zh) 2021-12-31 2021-12-31 服务访问方法、装置及负载均衡系统

Publications (1)

Publication Number Publication Date
CN116418724A true CN116418724A (zh) 2023-07-11

Family

ID=87058319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111663435.0A Pending CN116418724A (zh) 2021-12-31 2021-12-31 服务访问方法、装置及负载均衡系统

Country Status (1)

Country Link
CN (1) CN116418724A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117938809A (zh) * 2024-03-25 2024-04-26 翼方健数(北京)信息科技有限公司 域名访问路径优化方法、系统和可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117938809A (zh) * 2024-03-25 2024-04-26 翼方健数(北京)信息科技有限公司 域名访问路径优化方法、系统和可读存储介质

Similar Documents

Publication Publication Date Title
US10645056B2 (en) Source-dependent address resolution
CN112470436B (zh) 用于提供多云连通性的系统、方法、以及计算机可读介质
CN111885075B (zh) 容器通信方法、装置、网络设备及存储介质
CN110113441B (zh) 实现负载均衡的计算机设备、系统和方法
CN102577256B (zh) 在虚拟化网络基础设施情况下用于透明云计算的方法和设备
CN105610632B (zh) 一种虚拟网络设备及相关方法
JP2020129800A (ja) 仮想ネットワークインタフェースオブジェクト
US9830179B2 (en) Interaction with a virtual network
US8804745B1 (en) Virtualization mapping
CN113596110B (zh) 一种面向异构云的云原生微服务平台
US20150288750A1 (en) Interaction with a virtual network
CN108780410A (zh) 计算系统中的容器的网络虚拟化
EP2922246B1 (en) Method and data center network for cross-service zone communication
CN111756830A (zh) 公有云网络的内网负载均衡实现方法
CN112187958A (zh) 微服务注册、发现转发的方法及装置
CN111510515A (zh) 一种区分混合应用环境的容器的方法及装置
CN111510310A (zh) 公有云架构下的网络模式实现方法和装置
CN111182022A (zh) 数据发送方法和装置、存储介质及电子装置
US20220166715A1 (en) Communication system and communication method
CN109450768B (zh) 容器互联的方法及用于容器互联的系统
EP4184873A1 (en) Communication method, cp device, and nat device
CN116418724A (zh) 服务访问方法、装置及负载均衡系统
EP3503484B1 (en) Message transmission methods and devices
CN115665026A (zh) 一种集群组网的方法和装置
CN110247778A (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