CN115037754A - 一种负载均衡方法及装置 - Google Patents
一种负载均衡方法及装置 Download PDFInfo
- Publication number
- CN115037754A CN115037754A CN202210510882.0A CN202210510882A CN115037754A CN 115037754 A CN115037754 A CN 115037754A CN 202210510882 A CN202210510882 A CN 202210510882A CN 115037754 A CN115037754 A CN 115037754A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- node
- pod
- providing
- 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
Links
Images
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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及容器技术领域,特别涉及一种负载均衡方法及装置。该方法包括:监听K8s上提供各服务的Pod的新建、删除、迁移事件;若监听到K8s上提供目标服务的Pod的新建、删除、迁移事件,则从SDN控制器获取提供该目标服务的Pod所在的各目标节点信息和各目标节点上用于提供该目标服务的Pod的服务权重信息;基于各目标节点信息和各目标节点上用于提供该目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息。
Description
技术领域
本申请涉及容器技术领域,特别涉及一种负载均衡方法及装置。
背景技术
Kubernetes:是容器管理平台的事实标准。简称为k8s。是Google开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。Kubernetes集群由控制节点(Master)和计算节点(Node)组。Kubernetes的控制节点相当于OpenStack的控制节点,主要部署API server、ETCD、调度器、集群控制器等模块,实现对Kubernetes集群的管理。Kubernetes计算节点相当于OpenStack的NOVA Compute节点,主要部署kubelet、kube-proxy、container runtime,并运行容器实例。
实际应用中,在k8s上创建NodePort类型的Service(对外提供的服务),服务名称为NodePort Service 1;定义Nodeport类型的Service时,k8s会自动生成一个ClusterIP类型的Service,服务名称为ClusterIP Service 1。接着,LB将Service 1的VIP1发布到外部网络。那么,Client通过外网访问Service 1流程:客户访问VIP1;报文到达LB后,LB通过负载均衡算法(如round-robin),找到Node1 IP1:NodePort提供服务。LB将流量发送border,border通过查找EVPN路由将报文转发到Node1;NodePort Service 1服务会自动路由到ClusterIP Service 1服务,进行二次负载均衡,ClusterIP Service 1通过内部负载分担到真实业务提供者POD。
具体的,VIP1的member添加有两种方式,一种是将集群内所有Node节点的IP地址都添加进来,这种方式能保证业务正常访问,但是存在流量绕行的问题,且不能根据各节点可提供服务的Pod数量进行负载分担,即LB可能将业务流量Hash至所有节点的任一节点上(如,通过轮训的的方式将业务流量Hash至各节点上),然后由该节点ClusterIP的再次负载均衡,确定处理该业务流量的容器所在的节点,再将该业务流量转发至该容器所在的节点;另一种是仅仅将提供服务的Node节点的IP地址添加进来,当管理员感知POD迁移后,手动对member进行增删,存在刷新不及时,业务流量去往先前不能提供的节点,从而导致流量绕行的问题。
发明内容
本申请提供了一种负载均衡方法及装置,用以解决现有技术中存在的负载均衡效果不佳的问题。
第一方面,本申请提供了一种负载均衡方法,所述方法包括:
监听K8s上提供各服务的Pod的新建、删除、迁移事件;
若监听到K8s上提供目标服务的Pod的新建、删除、迁移事件,则从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
其中,所述LB设备基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡,各节点上配置有业务请求转发策略,各节点在接收到LB设备发送的该节点上的Pod可提供的服务的业务请求时,基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
可选地,从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息的步骤包括:
从SDN控制器获取提供所述目标服务的Pod所在的各目标节点的IP地址信息和各目标节点上用于提供所述目标服务的Pod的数量信息。
可选地,基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡的步骤包括:
将所述各目标节点上用于提供所述目标服务的Pod的数量作为该目标节点的权重值;
基于所述各目标节点的权重值,对客户端发送的所述目标服务的业务请求进行负载均衡。
第二方面,本申请提供了一种负载均衡方法,应用于节点,所述节点上配置有业务请求转发策略,若该节点接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
可选地,所述转发策略为SDN控制器下发的OVS流表;
若该节点接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理的步骤包括:
若该节点接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则基于该服务对应的OVS流表,将该服务的业务请求分配至本地提供该服务的Pod进行处理。
第三方面,本申请提供了一种负载均衡装置,所述装置包括:
监听单元,用于监听K8s上提供各服务的Pod的新建、删除、迁移事件;
获取单元,若所述监听单元监听到K8s上提供目标服务的Pod的新建、删除、迁移事件,则所述获取单元从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
更新单元,用于基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
其中,所述LB设备基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡,各节点上配置有业务请求转发策略,各节点在接收到LB设备发送的该节点上的Pod可提供的服务的业务请求时,基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
可选地,从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息时,所述获取单元具体用于:
从SDN控制器获取提供所述目标服务的Pod所在的各目标节点的IP地址信息和各目标节点上用于提供所述目标服务的Pod的数量信息。
可选地,基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡时,
将所述各目标节点上用于提供所述目标服务的Pod的数量作为该目标节点的权重值;
基于所述各目标节点的权重值,对客户端发送的所述目标服务的业务请求进行负载均衡。
第四方面,本申请提供了一种负载均衡装置,应用于节点,所述节点上配置有业务请求转发策略,所述装置包括接收单元和分配单元:
若所述接收单元接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则所述分配单元基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
可选地,所述转发策略为SDN控制器下发的OVS流表;
若所述接收单元接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则所述分配单元基于该服务对应的OVS流表,将该服务的业务请求分配至本地提供该服务的Pod进行处理。
第五方面,本申请实施例提供一种负载均衡装置,该负载均衡装置包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
第六方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
第七方面,本申请实施例提供一种负载均衡装置,该负载均衡装置包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第二方面中任一项所述的方法的步骤。
第八方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第二方面中任一项所述方法的步骤。
综上可知,本申请实施例提供的负载均衡方法,所述方法包括:监听K8s上提供各服务的Pod的新建、删除、迁移事件;若监听到K8s上提供目标服务的Pod的新建、删除、迁移事件,则从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;其中,所述LB设备基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡,各节点上配置有业务请求转发策略,各节点在接收到LB设备发送的该节点上的Pod可提供的服务的业务请求时,基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
采用本申请实施例提供的负载均衡方法,LB设备可以实时感知到提供各服务的节点信息,以及各节点上用于提供该服务的Pod的服务权重信息,基于各节点的权重对该服务对应的业务请求进行负载均衡处理,实现了精细化和合理的负载分担问题,是的Pod的负载分担更均衡,效果更好。
进一步地,各节点基于转发策略,将接收到的业务请求分发至本地的Pod进行处理,无需进行二次负载分担,避免了流量绕行,提升了业务请求处理效率。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请实施例提供的一种负载均衡方法的详细流程图;
图2为本申请实施例提供的一种负载均衡方法的详细流程图;
图3为本申请实施例提供的一种负载均衡装置的结构示意图;
图4为本申请实施例提供的另一种负载均衡装置的结构示意图;
图5为本申请实施例提供的一种负载均衡装置的硬件架构示意图;
图6为本申请实施例提供的另一种负载均衡装置的硬件架构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
示例性的,参阅图1所示,为本申请实施例提供的一种负载均衡方法的详细流程图,该方法包括以下步骤:
步骤100:监听K8s上提供各服务的Pod的新建、删除、迁移事件。
本申请实施例中,一种较佳地实现方式为,在LB设备上增加一个用于监听K8s APIserver的NodePort类型service时间的微服务(如,LB member Controller),其用于监听K8s的NodePort类型service的Pod的新建、删除、迁移等事件。
例如,监听K8S API server的NodePort类型service、POD增加、删除等事件;若感知到NodePort类型service的POD的新建、删除等事件,则从SDN控制器获取提供容器服务的POD所在Node节点的IP以及提供同一服务的基于POD数量的权重;基于从SDN控制器收集到的真实NodeIP和服务权重值,向LB自动更新VIP的member。
所谓NodePort类型service,指的是K8s集群中用于对外部客户端提供的业务服务。
需要说明的是,本申请实施例中,另一种较佳地实现方式为,用于监听K8sAPIserver的NodePort类型service时间的微服务部署在管理系统的管理设备上,该管理设备与SDN控制器和LB设备网络通信,由管理设备上部署的微服务执行事件监听,后续的从SDN控制器获取相关信息,并基于获取到的信息对LB设备上的相关信息进行更新的操作,本申请实施例中,在此不做具体限定。
步骤110:若监听到K8s上提供目标服务的Pod的新建、删除、迁移事件,则从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息。
实际应用中,SDN控制器用于创建Node节点的overlay网络,并可以获取到各节点的NodePort类型service的Pod的新建、删除、迁移等事件,即SDN控制器可以获取各节点可提供的服务可提供各服务的节点列表,以及可提供该服务的列表中,各节点上创建的可用于提供该服务的Pod的服务权重值。
本申请实施例中,提供一个服务的一个节点上可以创建有至少一个用于提供该服务的Pod,那么,可以将一个节点上用于提供一个服务的Pod数量作为该服务的服务权重值。
例如,假设提供服务1的节点包括节点1和节点3,节点1上创建有2个用于提供服务1的Pod,节点3上创建有5个用于提供服务1的Pod,那么,节点1上服务1的服务权重值为2,节点2上服务1的服务权重值为5。
本申请实施例中,从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息时,一种较佳地实现方式为:从SDN控制器获取提供所述目标服务的Pod所在的各目标节点的IP地址信息和各目标节点上用于提供所述目标服务的Pod的数量信息。
即SDN控制器维护有各服务对应的节点IP(对外提供服务的主机IP),如,提供服务1的节点包括节点1和节点3,提供服务2的节点包括节点1和节点2,提供服务3的节点包括节点2和节点3,……。进一步的,SDN控制器还维护有个节点上提供各服务的Pod数量,如,节点1上提供服务1的Pod数量为2,节点3上提供服务1的Pod数量为5,节点1上提供服务2的Pod数量为1,节点3上提供服务2的Pod数量为4,节点2上提供服务3的Pod数量为3,节点3上提供服务3的Pod数量为1。
步骤120:基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息。
本申请实施例中,若用于监听K8s API server的NodePort类型service时间的微服务部署在管理系统的管理设备上,则管理系统从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,然后,基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息。
若用于监听K8s API server的NodePort类型service时间的微服务部署在管理系统的LB设备上,则LB设备直接从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息。
相应的,LB设备在基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡时,一种较佳地实现方式为:将所述各目标节点上用于提供所述目标服务的Pod的数量作为该目标节点的权重值;基于所述各目标节点的权重值,对客户端发送的所述目标服务的业务请求进行负载均衡。
如,提供目标服务的节点包括2个节点,其中,一个节点(如,第二节点)上创建的用于提供该目标服务的Pod数量为n,另一个节点(如,第二节点)上创建的用于提供该目标服务的Pod数量为m,那么,LB设备在对该目标服务的业务流量(业务请求)进行负载均衡处理时,以n:m的比例将该目标服务对应的业务请求分发至第一节点和第二节点。
具体的,以服务1为目标服务,提供服务1的节点为节点1和节点3为例进行说明,例如,节点1上提供服务1的Pod数量为2,节点3上提供服务1的Pod数量为5,那么,在LB设备在对服务1对应的业务请求进行负载均衡时,那么,LB设备在对服务1对应的业务进行负载均衡时,以2:5的比例将服务1对应的业务请求分发至节点1和节点3。
本申请实施例中,各节点上配置有业务请求转发策略,各节点在接收到LB设备发送的该节点上的Pod可提供的服务的业务请求时,基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
示例性的,参阅图2所示,为本申请实施例提供的一种负载均衡方法的详细流程图,该方法应用于节点,该节点上配置有业务请求转发策略,该方法包括以下步骤:
步骤200:接收LB设备发送的该节点上的Pod可提供的服务的业务请求。
具体的,LB设备实时获取有提供各服务的节点信息,以及各节点上创建的提供该服务的Pod数量信息,那么,LB设备即可基于各节点上创建的提供该服务的Pod数量信息,对该服务对应的业务请求进行负载分担,一个节点上提供该服务的Pod数量越多,分发至该节点的业务请求越多,对应的,一个节点上提供该服务的Pod数量越少,分发至该节点的业务请求越少。
步骤210:基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
本申请实施例中,一种较佳地实现方式为:所述转发策略为SDN控制器下发的OVS流表;那么,若该节点接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理时,一种较佳地实现方式为:若该节点接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则基于该服务对应的OVS流表,将该服务的业务请求分配至本地提供该服务的Pod进行处理。
例如,节点1上创建有用于提供目标服务的Pod1和Pod2,那么,节点1接收到LB发送的用于请求目标服务的业务请求时,将该业务请求直接分发至本地创建的Pod1或Pod2进行处理,无需再次通过二次负载均衡将该业务请求分发至其它节点上创建的用于提供该目标服务的Pod进行处理,以避免业务流量绕行。
下面结合具体应用场景对本申请实施例提供的负载均衡方式进行举例说明。
例如,对于新建NodePort类型service的服务,各主要组件处理过程如下:
1、SDN控制器:创建Node节点的overlay网络;
2、Fabric网络设备:下发overlay网络配置;
3、K8S master:创建NodePort类型的service;
4、K8S Node:Node上创建NodePort类型的service对应的POD;
5、LB member controller:从K8S API service监听到了NodePort类型的service创建事件;去SDN控制器收集真实NodeIP列表以及基于POD数量的权重值;
6、SDN控制器:返回承载服务的POD所在Node列表和基于POD数量的权重值;
7、LB member controller:向LB更新NodeIP信息和对应的POD权重值;
8、LB:完成member和权重值的更新;
9、Client:通过VIP访问k8s集群服务,报文转发到LB;
10、LB:通过负载均衡算法选择一个Node提供服务;
11、K8S Node:本Node的POD就近提供服务。
又例如,对于承载NodePort类型service的POD迁移的场景,各主要组件处理过程如下:
1、LB member controller:从K8S API service监听到了NodePort类型的service创建事件;去SDN控制器收集真实Node列表以及基于POD数量的权重值;
2、SDN控制器:返回承载服务的POD所在Node列表和基于POD数量的权重值;
3、LB member controller:向LB更新NodeIP信息和对应的POD权重值
4、LB:完成member和权重值的更新;
5、Client:通过VIP访问k8s集群服务,报文转发到LB;
6、LB:通过负载均衡算法选择一个Node提供服务;
7、K8S Node:本Node的POD就近提供服务。
实际应用中,当一个服务对应的节点/节点上用于提供该服务的Pod发生新建/删除/迁移时,LB设备可以感知到该变化,并从SDN控制器获取变化后的提供该服务的节点信息(对外提供服务的主机IP),以及各节点上用于提供该服务的Pod数量变化信息。
示例性的,参阅图3所示,为本申请实施例提供的一种负载均衡装置的结构示意图,该装置包括:
监听单元30,用于监听K8s上提供各服务的Pod的新建、删除、迁移事件;
获取单元31,若所述监听单元监听到K8s上提供目标服务的Pod的新建、删除、迁移事件,则所述获取单元从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
更新单元32,用于基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
其中,所述LB设备基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡,各节点上配置有业务请求转发策略,各节点在接收到LB设备发送的该节点上的Pod可提供的服务的业务请求时,基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
可选地,从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息时,所述获取单元31具体用于:
从SDN控制器获取提供所述目标服务的Pod所在的各目标节点的IP地址信息和各目标节点上用于提供所述目标服务的Pod的数量信息。
可选地,基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡时,
将所述各目标节点上用于提供所述目标服务的Pod的数量作为该目标节点的权重值;
基于所述各目标节点的权重值,对客户端发送的所述目标服务的业务请求进行负载均衡。
示例性的,参阅图4所示,为本申请实施例提供的一种负载均衡装置的结构示意图,该装置应用于节点,该装置应用于节点,所述节点上配置有业务请求转发策略,该装置包括接收单元40和分配单元41:
若所述接收单元40接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则所述分配单元41基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
可选地,所述转发策略为SDN控制器下发的OVS流表;
若所述接收单元40接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则所述分配单元41基于该服务对应的OVS流表,将该服务的业务请求分配至本地提供该服务的Pod进行处理。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
进一步地,本申请实施例提供的负载均衡装置,从硬件层面而言,所述负载均衡装置的硬件架构示意图可以参见图5所示,所述负载均衡装置可以包括:存储器50和处理器51,
存储器50用于存储程序指令;处理器51调用存储器50中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种负载均衡设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
更进一步地,本申请实施例提供的负载均衡装置,从硬件层面而言,所述负载均衡装置的硬件架构示意图可以参见图6所示,所述负载均衡装置可以包括:存储器60和处理器61,
存储器60用于存储程序指令;处理器61调用存储器60中存储的程序指令,按照获得的程序指令执行上述应用于节点的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种LB设备,包括用于执行上述应用于节点的方法实施例的至少一个处理元件(或芯片)。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述应用于节点备的方法实施例。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种负载均衡方法,其特征在于,所述方法包括:
监听K8s上提供各服务的Pod的新建、删除、迁移事件;
若监听到K8s上提供目标服务的Pod的新建、删除、迁移事件,则从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
其中,所述LB设备基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡,各节点上配置有业务请求转发策略,各节点在接收到LB设备发送的该节点上的Pod可提供的服务的业务请求时,基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
2.如权利要求1所述的方法,其特征在于,从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息的步骤包括:
从SDN控制器获取提供所述目标服务的Pod所在的各目标节点的IP地址信息和各目标节点上用于提供所述目标服务的Pod的数量信息。
3.如权利要求2所述的方法,其特征在于,基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡的步骤包括:
将所述各目标节点上用于提供所述目标服务的Pod的数量作为该目标节点的权重值;
基于所述各目标节点的权重值,对客户端发送的所述目标服务的业务请求进行负载均衡。
4.一种负载均衡方法,其特征在于,应用于节点,所述节点上配置有业务请求转发策略,若该节点接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
5.如权利要求4所述的方法,其特征在于,所述转发策略为SDN控制器下发的OVS流表;
若该节点接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理的步骤包括:
若该节点接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则基于该服务对应的OVS流表,将该服务的业务请求分配至本地提供该服务的Pod进行处理。
6.一种负载均衡装置,其特征在于,所述装置包括:
监听单元,用于监听K8s上提供各服务的Pod的新建、删除、迁移事件;
获取单元,若所述监听单元监听到K8s上提供目标服务的Pod的新建、删除、迁移事件,则所述获取单元从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
更新单元,用于基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,更新LB设备上提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息;
其中,所述LB设备基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡,各节点上配置有业务请求转发策略,各节点在接收到LB设备发送的该节点上的Pod可提供的服务的业务请求时,基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
7.如权利要求6所述的装置,其特征在于,从SDN控制器获取提供所述目标服务的Pod所在的各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息时,所述获取单元具体用于:
从SDN控制器获取提供所述目标服务的Pod所在的各目标节点的IP地址信息和各目标节点上用于提供所述目标服务的Pod的数量信息。
8.如权利要求7所述的装置,其特征在于,基于所述各目标节点信息和各目标节点上用于提供所述目标服务的Pod的服务权重信息,对客户端发送的所述目标服务的业务请求进行负载均衡时,
将所述各目标节点上用于提供所述目标服务的Pod的数量作为该目标节点的权重值;
基于所述各目标节点的权重值,对客户端发送的所述目标服务的业务请求进行负载均衡。
9.一种负载均衡装置,其特征在于,应用于节点,所述节点上配置有业务请求转发策略,所述装置包括接收单元和分配单元:
若所述接收单元接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则所述分配单元基于该转发策略将该服务的业务请求分配至本地提供该服务的Pod进行处理。
10.如权利要求9所述的装置,其特征在于,所述转发策略为SDN控制器下发的OVS流表;
若所述接收单元接收到LB设备发送的该节点上的Pod可提供的服务的业务请求,则所述分配单元基于该服务对应的OVS流表,将该服务的业务请求分配至本地提供该服务的Pod进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210510882.0A CN115037754A (zh) | 2022-05-11 | 2022-05-11 | 一种负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210510882.0A CN115037754A (zh) | 2022-05-11 | 2022-05-11 | 一种负载均衡方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115037754A true CN115037754A (zh) | 2022-09-09 |
Family
ID=83120334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210510882.0A Pending CN115037754A (zh) | 2022-05-11 | 2022-05-11 | 一种负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115037754A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132447A (zh) * | 2022-12-21 | 2023-05-16 | 天翼云科技有限公司 | 一种基于Kubernetes的负载均衡方法及其装置 |
-
2022
- 2022-05-11 CN CN202210510882.0A patent/CN115037754A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132447A (zh) * | 2022-12-21 | 2023-05-16 | 天翼云科技有限公司 | 一种基于Kubernetes的负载均衡方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200220924A1 (en) | Service Deployment Method and Function Management Platform Under Serverless Architecture | |
US11057461B2 (en) | Scalable peer matching | |
US20190034084A1 (en) | Selecting controllers based on affinity between access devices and storage segments | |
US8271468B1 (en) | Cross-region data access in partitioned framework | |
US10715479B2 (en) | Connection redistribution in load-balanced systems | |
CN103051564B (zh) | 资源动态调配的方法和装置 | |
CN107545338B (zh) | 业务数据处理方法及业务数据处理系统 | |
CN107278365B (zh) | 用于可扩展的对等匹配的设备 | |
CN108881512B (zh) | Ctdb的虚拟ip均衡分配方法、装置、设备及介质 | |
CN101984632A (zh) | 一种分布式缓存系统中负荷分配方法、装置及服务器 | |
US9239838B1 (en) | Scalable partitioning in a multilayered data service framework | |
JPWO2018220708A1 (ja) | 資源割当システム、管理装置、方法およびプログラム | |
CN105515977B (zh) | 获取网络中传输路径的方法、装置和系统 | |
CN104917805A (zh) | 一种负载分担的方法和设备 | |
US9851960B2 (en) | Tenant allocation in multi-tenant software applications | |
US20160234129A1 (en) | Communication system, queue management server, and communication method | |
CN115037754A (zh) | 一种负载均衡方法及装置 | |
CN106533961A (zh) | 一种流量控制方法及装置 | |
CN109743357B (zh) | 一种业务访问连续性的实现方法及装置 | |
CN112532758B (zh) | 一种网络边缘计算系统的创建方法、装置及介质 | |
US20230026659A1 (en) | Transparent multiple availability zones in a cloud platform | |
CN113505111B (zh) | 一种共享目录挂载方法及分布式网络附加存储系统 | |
CN113672347A (zh) | 一种容器组调度方法及装置 | |
CN113873052B (zh) | Kubernetes集群的域名解析方法、装置及设备 | |
US7613707B1 (en) | Traffic migration in a multilayered data service framework |
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 |