CN113014611B - 一种负载均衡方法及相关设备 - Google Patents

一种负载均衡方法及相关设备 Download PDF

Info

Publication number
CN113014611B
CN113014611B CN201911323403.9A CN201911323403A CN113014611B CN 113014611 B CN113014611 B CN 113014611B CN 201911323403 A CN201911323403 A CN 201911323403A CN 113014611 B CN113014611 B CN 113014611B
Authority
CN
China
Prior art keywords
pod
node
weight
pods
target
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
Application number
CN201911323403.9A
Other languages
English (en)
Other versions
CN113014611A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201911323403.9A priority Critical patent/CN113014611B/zh
Priority to EP20901734.2A priority patent/EP4068725A4/en
Priority to PCT/CN2020/106021 priority patent/WO2021120633A1/zh
Publication of CN113014611A publication Critical patent/CN113014611A/zh
Priority to US17/843,754 priority patent/US20220318071A1/en
Application granted granted Critical
Publication of CN113014611B publication Critical patent/CN113014611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

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

Abstract

本申请实施例提供一种负载均衡方法及相关设备,该方法包括:确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,所述多个Pod分布在至少两个节点上;根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重;根据所述每个Pod的权重从所述多个Pod中选择目标Pod,其中,所述目标Pod用于处理所述第一节点中当前待处理的任务。采用本申请实施例,能够在分发任务请求时节约网络开销。

Description

一种负载均衡方法及相关设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种负载均衡方法及相关设备。
背景技术
负载均衡是指根据调度算法将任务请求分发到负载均衡集群中的多个节点(node),从而提高了负载均衡集群的任务处理的能力。在容器网络场景下,容器编排和管理平台(例如,Kubernetes)中的负载均衡是在负载均衡集群的节点上部署分布式的软件来实现的,通过分布式的软件根据现有的调度算法分发任务请求的方式容易造成额外的网络开销。因此如何在分发任务请求时节约网络开销是本领域人员正在研究的技术问题。
发明内容
本申请公开了一种负载均衡方法及相关设备,能够在分发任务请求时节约网络开销。
本申请第一方面公开了一种负载均衡方法,包括:
确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,所述多个Pod分布在至少两个节点上,例如,有的分布在该第一节点上,有的分布在与该第一节点连接同一个架顶交换机的节点上,有的分布在与该第一节点连接同一个叶子交换机的节点上,有的分布在与该第一节点连接同一个脊交换机的节点上;每个该至少两个节点中每个节点上分布的Pod数量此处不做限定;
根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重;
根据所述每个Pod的权重从所述多个Pod中选择目标Pod,其中,所述目标Pod用于处理所述第一节点中当前待处理的任务。
在上述方法中,通过根据每个Pod的拓扑信息确定每个Pod的权重,以将每个Pod的位置关系量化,因此权重值的大小能够反映每个Pod所在的节点与第一节点之间跨交换机的层数,之后就可以根据每个pod的权重值的大小选择跨交换机的层数少的目标Pod处理第一节点中当前待处理的任务,避免了选择跨交换机的层数多的Pod处理第一节点中当前待处理的任务,减少了网络开销。
在第一方面的又一种可选方案中,所述确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,包括:
接收所述控制节点发送的所述多个Pod中的每个Pod的拓扑信息。
在上述方法中,第一节点无需采集其他计算节点的LLDP信息,直接通过接收控制节点发送的多个Pod中每个Pod的拓扑信息的方式,更加快速,节约了选择目标Pod的时间。
在第一方面的又一种可选方案中,所述确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,包括:
采集所述至少两个节点的链路层发现协议LLDP信息;
根据所述至少两个节点的所述LLDP信息,生成所述多个Pod中的每个Pod的拓扑信息。
在上述方法中,第一节点需要与至少两个节点进行通信,采集至少两个节点的LLDP信息,根据实时采集LLDP信息生成多个Pod中的每个Pod的拓扑信息,这种生成拓扑信息的方式,更加准确。
当所述多个Pod中的每个Pod的负载都相同时,可以从所述多个Pod中选择权重最小的Pod为所述目标Pod。由于权重最小的Pod与第一节点的跨交换机层数最少,因此在负载都相同的情况下通过这种方式选择的目标Pod能够节约网络开销。
当所述多个Pod的负载不同时,可以根据所述多个Pod中每个Pod的负载以及所述每个Pod的权重从所述多个Pod中选择所述目标Pod。通过综合考虑每个Pod的权重值的大小和每个Pod的负载来选择目标Pod的方式,能够在负载均衡和节约网络开销两方面进行平衡,提高负载均衡集群的整体性能。
在第一方面的又一种可选方案中,所述根据所述每个Pod的权重从所述多个Pod中选择目标Pod之后,还包括:
将所述第一节点中所述当前待处理的任务定向到所述目标Pod,以指示所述目标Pod处理所述当前待处理的任务。
第二方面,本申请提供了一种负载均衡装置,包括:
第一确定单元,用于确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,所述多个Pod分布在至少两个节点上;
第二确定单元,用于根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重;
选择单元,用于根据所述每个Pod的权重从所述多个Pod中选择目标Pod,其中,所述目标Pod用于处理所述第一节点中当前待处理的任务。
在上述装置中,通过根据每个Pod的拓扑信息确定每个Pod的权重,以将每个Pod的位置关系量化,因此权重值的大小能够反映每个Pod所在的节点与第一节点之间跨交换机的层数,之后就可以根据每个pod的权重值的大小选择跨交换机的层数少的目标Pod处理第一节点中当前待处理的任务,避免了选择跨交换机的层数多的Pod处理第一节点中当前待处理的任务,造成了额外的网络开销。
在第二方面的又一种可选方案中,所述第一确定单元用于:接收所述控制节点发送的所述多个Pod中的每个Pod的拓扑信息。
在上述装置中,第一节点无需采集其他计算节点的LLDP信息,直接通过接收控制节点发送的多个Pod中每个Pod的拓扑信息的方式,更加快速,节约了选择目标Pod的时间。
在第二方面的又一种可选方案中,所述第一确定单元用于采集所述至少两个节点的链路层发现协议LLDP信息;根据所述至少两个节点的所述LLDP信息,生成所述多个Pod中的每个Pod的拓扑信息。
在上述装置中,第一节点需要与至少两个节点进行通信,采集至少两个节点的LLDP信息,根据实时采集LLDP信息生成多个Pod中的每个Pod的拓扑信息,这种生成拓扑信息的方式,更加准确。
可选地,所述选择单元,用于在所述多个Pod中的每个Pod的负载都相同的情况下,从所述多个Pod中选择权重最小的Pod为所述目标Pod;由于权重最小的Pod与第一节点的跨交换机层数最少,因此在负载都相同的情况下通过这种方式选择的目标Pod能够节约网络开销。
可选地,所述选择单元,用于在所述多个Pod的负载不同的情况下,根据所述多个Pod中每个Pod的负载以及所述每个Pod的权重从所述多个Pod中选择所述目标Pod;通过综合考虑每个Pod的权重值的大小和每个Pod的负载来选择目标Pod的方式,能够在负载均衡和节约网络开销两方面进行平衡,提高负载均衡集群的整体性能。
在第二方面的又一种可选方案中,所述装置还包括:
定向单元,用于在所述选择单元根据所述每个Pod的权重从所述多个Pod中选择目标Pod之后,将所述第一节点中针对所述当前待处理的任务定向到所述目标Pod,以指示所述目标Pod处理所述当前待处理的任务。
第三方面,本申请提供了一种第一节点,所述第一节点包括处理器、存储器和通信接口,所述存储器用于存储计算机程序,所述处理器调用所述计算机程序,用于执行如下操作:
确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,所述多个Pod分布在至少两个节点上;
根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重;
根据所述每个Pod的权重从所述多个Pod中选择目标Pod,其中,所述目标Pod用于处理所述第一节点中当前待处理的任务。
在上述第一节点中,通过根据每个Pod的拓扑信息确定每个Pod的权重,以将每个Pod的位置关系量化,因此权重值的大小能够反映每个Pod所在的节点与第一节点之间跨交换机的层数,之后就可以根据每个pod的权重值的大小选择跨交换机的层数少的目标Pod处理第一节点中当前待处理的任务,避免了选择跨交换机的层数多的Pod处理第一节点中当前待处理的任务,造成了额外的网络开销。
在第三方面的又一种可选方案中,在确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息方面,所述处理器用于:
通过所述通信接口接收所述控制节点发送的所述多个Pod中的每个Pod的拓扑信息。
在上述第一节点中,第一节点无需采集其他计算节点的LLDP信息,直接通过接收控制节点发送的多个Pod中每个Pod的拓扑信息的方式,更加快速,节约了选择目标Pod的时间。
在第三方面的又一种可选方案中,在确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息方面,所述处理器用于:
采集所述至少两个节点的链路层发现协议LLDP信息;
根据所述至少两个节点的所述LLDP信息,生成所述多个Pod中的每个Pod的拓扑信息。
在上述第一节点中,第一节点需要与至少两个节点进行通信,采集至少两个节点的LLDP信息,根据实时采集LLDP信息生成多个Pod中的每个Pod的拓扑信息,这种生成拓扑信息的方式,更加准确。
在第三方面的又一种可选方案中,在根据所述每个Pod的权重从所述多个Pod中选择目标Pod方面,所述处理器用于:
当所述多个Pod中的每个Pod的负载都相同时,从所述多个Pod中选择权重最小的Pod为所述目标Pod;由于权重最小的Pod与第一节点的跨交换机层数最少,因此在负载都相同的情况下通过这种方式选择的目标Pod能够节约网络开销。
或者
当所述多个Pod的负载不同时,根据所述多个Pod中每个Pod的负载以及所述每个Pod的权重从所述多个Pod中选择所述目标Pod;通过综合考虑每个Pod的权重值的大小和每个Pod的负载来选择目标Pod的方式,能够在负载均衡和节约网络开销两方面进行平衡,提高负载均衡集群的整体性能。
在第三方面的又一种可选方案中,所述处理器还用于:
在根据所述每个Pod的权重从所述多个Pod中选择目标Pod之后,将所述第一节点中所述当前待处理的任务定向到所述目标Pod,以指示所述目标Pod处理所述当前待处理的任务。
结合上述任意一个方面或者任意一个方面的任意一种可选方案,在又一种可选的方案中,所述负载均衡集群包括控制节点和至少两个计算节点,所述第一节点为所述至少两个计算节点中的一个,所述控制节点用于管理所述至少两个计算节点,所述多个Pod分布在所述至少两个计算节点上。
结合上述任意一个方面或者任意一个方面的任意一种可选方案,在又一种可选的方案中,在所述第一节点中的Pod的权重为第一权重;
在第二节点中的Pod的权重为第二权重,所述第二节点与所述第一节点连接同一个架顶交换机上,所述第二节点的互联网协议IP地址与所述第一节点的IP地址属于同一网段;
在第三节点中的Pod的权重为第三权重,所述第三节点与所述第一节点连接不同的架顶交换机,所述不同的架顶交换机连接同一个叶子交换机;
在第四节点中的Pod的权重为第四权重,所述第四节点与所述第一节点连接不同的叶子交换机,所述不同的叶子交换机连接同一个脊交换机;
第一权重<第二权重<第三权重<第四权重。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器实现第一方面或者第一方面的任意一种可选方案所描述的方法。
通过实施本申请,通过根据每个Pod的拓扑信息确定每个Pod的权重,以将每个Pod的位置关系量化,因此权重值的大小能够反映每个Pod所在的节点与第一节点之间跨交换机的层数,之后就可以根据每个pod的权重值的大小选择跨交换机的层数少的目标Pod处理第一节点中当前待处理的任务,避免了选择跨交换机的层数多的Pod处理第一节点中当前待处理的任务,造成了额外的网络开销。
附图说明
以下对本申请实施例用到的附图进行介绍。
图1是本申请实施例提供的一种负载均衡集群的架构示意图;
图2是本申请实施例提供的一种分发任务请求的过程示意图;
图3是本申请实施例提供的一种负载均衡方法的流程示意图;
图4是本申请实施例提供的一种多个节点中的多个Pod中每个Pod拓扑信息的示意图;
图5是本申请实施例提供的一种控制节点向第一节点发送多个节点中的多个Pod中每个Pod的拓扑信息的示意图;
图6是本申请实施例提供的一种节点1根据节点1和节点2的LLDP信息,生成节点1和节点2中的每个Pod的拓扑信息的示意图;
图7是本申请实施例提供的一种负载均衡装置的结构示意图;
图8是本申请实施例提供的另一种负载均衡装置的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参见图1,图1是本申请实施例提供的一种负载均衡集群的架构示意图,该负载均衡集群可以包括一个控制节点101和至少两个计算节点102(图中示出了102a-102e),其中,控制节点101和至少两个计算节点102中的每个节点可以为一个服务器或者云平台上的一个虚拟机。控制节点101用于管理该至少两个计算节点102。该至少两个计算节点102为负载均衡节点,用于选择计算节点中的Pod来处理待处理任务。例如,待处理任务可以为打开视频软件的请求,访问某个网址的请求等。其中,每个计算节点中可以包括一个或多个最小管理单元Pod。
上述负载均衡集群可以为容器编排和管理平台(例如Kubernetes,k8s)集群或者其他运行环境的集群,其中,Kubernetes是一个跨主机集群的开源容器调度平台,它可以让容器化的应用被简单并且高效地部署,提供了应用部署,规划,更新,维护的一种机制。传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。当使用Kubernetes部署容器时,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器是与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
Pod是Kubernetes集群中的最小管理单元,是由用户创建或部署的最小组件,也是Kubernetes集群上运行容器化应用时使用的资源对象,每个Pod都会被分配一个唯一的IP地址,每个Pod包含了一个或多个容器,同一个Pod中的容器会被分配到同一个节点上。Pod内部的容器共享Pod的网络空间,包括IP地址和端口。Pod内部的容器可以使用该Pod的宿主机互相通信。Pod内部的容器与外界通信时,必须使用为该Pod分配的网络资源。
Pod内部的容器都可以访问共享的存储卷(volume),该volume也可以用来持久化Pod中的存储资源,以防容器重启后文件丢失。Pod中的容器总是被同时调度,有共同的运行环境。
当客户端请求服务时,服务端在负载均衡集群中通过负载均衡调度算法选择一个目标Pod,由该目标Pod为该客户端提供服务。负载均衡调度算法包括静态调度算法和动态调度算法,下面对静态调度算法和动态调度算法进行简单介绍。
静态调度算法:按照某种既定的算法分配服务请求,不考虑实时的连接数。
例如,采用轮循(roundrobin,RR)算法将外部请求按顺序轮流分配到集群中的节点上,它均等地对待每一个节点,而不管节点上实际的连接数和负载。
再如,采用加权轮询(weighted roundrobin,WRR)算法给集群中的每个节点分配一个权值,权值越大,分到的请求数越多。
再如,采用目标散列(destination hashing,DH)算法根据请求的目标IP地址,作为散列键值(hash key)从静态分配的散列表找出对应的节点,若该节点是可用的且未超载,将请求发送到该节点,否则返回空。来自于同一个IP地址的请求都被重定向到同一个节点上,保证目标地址不变。
再如,采用源散列(source hashing,SH)算法根据请求的源IP地址,作为散列键值(hash key)从静态分配的散列表找出对应的节点,若该节点是可用的且未超载,将请求发送到该节点,否则返回空。
动态调度算法:通过检查节点上当前连接数的活跃状态来重新决定下一步调度方式。
例如,采用最少连接(leastconnection,LC)算法,即哪一个节点上的连接数少就将下一个连接请求定向到该连接数少的节点上去。算法实现:连接数=活跃连接数*256+非活跃连接数。
再如,采用加权最少连接(weight least-connection,WLC)算法,即在最少连接的基础上给每个节点分配一个权重。算法实现:连接数=(活跃连接数*256+非活跃连接数)÷权重,是一种比较理想的算法。
再如,采用最短期望延迟(shortest expected delay,SED)算法,即不再考虑非活跃连接数,算法实现:连接数=(活跃连接数+1)*256÷权重。
再如,采用永不排队(never queue,NQ)算法,永不排队算法是对SED算法的改进,当新请求过来的时候不仅要取决于SED算法所得到的值,还要取决于节点上是否有活跃连接。
再如,采用基于本地状态的最少连接(locality-based least-connection,LBLC)算法,即在DH算法的基础上还要考虑节点上的活跃连接数。
在容器网络场景下,容器编排和管理平台中的负载均衡是在负载均衡集群的节点上部署分布式的软件来实现的,通过分布式的软件根据调度算法分发任务请求的方式容易造成额外的网络开销,如图2所示,图2为分发任务请求的过程示意图。其中,节点1中的最小管理单元Pod1为发起请求的客户端(client),节点1和节点2连接同一架顶交换机,节点1将任务请求分发给节点2中的Pod4,由该Pod4实际提供服务。而没有将任务请求分发给节点1中的Pod2,造成了额外的网络开销。为了解决上述技术问题,本申请实施例提供了如下解决方案。
请参见图3,图3是本申请实施例提供的一种负载均衡方法,该方法可以基于图1所示的负载均衡集群来实现,该方法包括但不限于如下步骤:
步骤S301、第一节点确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息。
第一节点为负载均衡集群中的节点,例如,计算节点;该多个Pod分布在该负载均衡集群中的至少两个节点上,例如,有的分布在该第一节点上,有的分布在与该第一节点连接同一个架顶交换机的节点上,有的分布在与该第一节点连接同一个叶子交换机的节点上,有的分布在与该第一节点连接同一个脊交换机的节点上;该至少两个节点中每个节点上分布的Pod数量此处不做限定。该多个Pod均能够处理第一节点中当前待处理任务,每个Pod的拓扑信息表示每个Pod所在的节点以及该Pod所在的节点与其他节点的连接关系。
假若节点1中有Pod1和Pod2,节点2中有Pod3和Pod4,节点3中有Pod5和Pod6,节点4中有Pod7和Pod8,节点1为第一节点,节点1中的Pod1为发起请求的客户端(client),节点2中的Pod3和Pod4都能为该请求提供服务,节点3中的Pod5和Pod6都能为该请求提供服务,节点4中的Pod7和Pod8也都能为该请求提供服务;那么节点1根据节点2的互联网协议地址IP地址为10.1.10.2确定节点2与节点1属于同一网段,连接同一个架顶交换机;节点1根据节点3的IP地址为10.1.11.2,确定节点3连接在架顶交换机2上,节点1连接在架顶交换机1上,架顶交换机1和架顶交换机2连接在同一个叶子交换机1上;节点1根据节点4的IP地址为10.1.12.2确定节点4连接在架顶交换机3上,架顶交换机3连接叶子交换机2,而节点1连接架顶交换机1,架顶交换机1连接叶子交换机1,叶子交换机1和叶子交换机2连接同一个脊交换机1。最终,节点1确定的多个节点中的多个Pod中每个Pod的拓扑信息可以如图4所示。
确定该负载均衡集群中的多个Pod中的每个Pod的拓扑信息方式包括但不限于如下两种:
方式一,接收控制节点发送的所述多个Pod中的每个Pod的拓扑信息。
例如,如图5所示,图5表示控制节点向第一节点发送多个节点中的多个Pod中每个Pod的拓扑信息的过程。其中,节点A为控制节点,节点B为第一节点。负载均衡集群在部署时默认的分布式键值数据库(etcd),保存了各个计算节点的部署情况,以及各个计算节点中的Pod的部署情况;可选的,用户可以自己定义负载均衡集群中各个节点以及节点中的Pod如何部署。可选的,当添加新Pod、删除已有Pod或者Pod的相应信息有更新时,相关信息都会实时更新到控制节点。控制节点向第一节点发送多个节点中的多个Pod中每个Pod的拓扑信息,相应的,该第一节点接收该多个Pod中每个Pod的拓扑信息。
方式二,采集所述至少两个节点的链路层发现协议(Link Layer DiscoveryProtocol,LLDP)信息;然后根据所述至少两个节点的所述LLDP信息,生成所述多个Pod中的每个Pod的拓扑信息。
此处的采集可以为主动读取,或者被动接收。第一种情况,当为主动读取时,第一节点向多个节点分别或组播发送请求消息,以请求LLDP信息,该多个节点中的每个节点接收到该请求消息后将自己的LLDP信息发送给该第一节点。第二种情况,当为被动接收时,多个节点中的每个节点定期将自己的LLDP信息发送给第一节点,相应地,第一节点接收该多个节点发送的LLDP信息。
LLDP信息可以包括:用于标识该节点的信息和用于标识该节点的对端的信息,例如,用于标识该节点的信息包括该节点的节点标识(即chassis ID)和端口标识(port ID),用于标识该节点的对端的信息包括该对端的chassis ID和port ID。根据用于该节点的chassis ID、port ID和该节点的对端的chassis ID、port ID即可确定该节点与其他节点的连接关系。
例如,有节点1和节点2(均以节点的MAC地址作为节点标识,以端口名称作为端口标识),节点1为第一节点,节点1的节点标识为chassis ID=00-16-EA-AE-3C-40,节点1的a端口的端口标识为port ID=Ethernet 0/0/7/0;节点2的节点标识为chassis ID=00-16-EA-AE-2B-66,节点2的b端口的端口标识为port ID=Ethernet 0/0/6/0。那么采集到的节点1的LLDP信息中节点1的信息包括chassis ID=00-16-EA-AE-3C-40,port ID=port ID=Ethernet 0/0/7/0,对端的信息包括chassis ID=00-16-EA-AE-2B-66,port ID=Ethernet 0/0/6/0;那么采集到的节点2的LLDP信息中的节点2的信息包括chassis ID=00-16-EA-AE-2B-66,port ID=Ethernet 0/0/6/0,对端的信息包括chassis ID=00-16-EA-AE-3C-40,port ID=Ethernet0/0/7/0,根据节点1的LLDP信息和节点2的LLDP信息确定节点1的a端口与节点2的b端口存在连接关系,即确定节点1和节点2连接同一个架顶交换机,因为节点1中有Pod2,节点2中有Pod3和Pod4,依次类推,最终,节点1根据节点1和节点2的LLDP信息,生成节点1和节点2中的每个Pod的拓扑信息可以如图6所示。
步骤S302、第一节点根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重。
可选的,可以按照如下规则来配置各个Pod权重:
在所述第一节点中的Pod的权重为第一权重;
在第二节点中的Pod的权重为第二权重,所述第二节点与所述第一节点连接同一个架顶交换机上,所述第二节点的互联网协议IP地址与所述第一节点的IP地址属于同一网段;
在第三节点中的Pod的权重为第三权重,所述第三节点与所述第一节点连接不同的架顶交换机,所述不同的架顶交换机连接同一个叶子交换机;
在第四节点中的Pod的权重为第四权重,所述第四节点与所述第一节点连接不同的叶子交换机,所述不同的叶子交换机连接同一个脊交换机。
在一个实现方式中,第一权重<第二权重<第三权重<第四权重。本实施方式中,权重越大,计算出的开销越大,与该开销相关的Pod被选择的几率越小。
在另一个实现方式中,第一权重〉第二权重〉第三权重〉第四权重。本实施方式中,权重越大,计算出的开销越小,与该开销相关的Pod被选择的几率越大。
架顶交换机一般为直接连接节点的交换机;叶子交换机连接不同的架顶交换机,为多台架顶交换机的汇聚点,能够处理来自架顶交换机的所有通信,并提供到脊交换机;脊交换机连接不同的叶子交换机,能够高速转发通信。
例如,如图4所示,假若节点1为第一节点,因为Pod2与Pod1都位于节点1中,那么可以确定Pod2的权重为第一权重,该第一权重的值可以为4;因为节点2和节点1连接同一个架顶交换机1,且节点2与节点1的IP地址在同一个网段中,那么可以确定在节点2中的Pod3和Pod4的权重为第二权重,例如该第二权重的值可以为5;因为节点3连接架顶交换机2,节点1连接架顶交换机1,架顶交换机1和架顶交换机2连接同一个叶子交换机1,那么可以确定节点3中的Pod5和Pod6的权重为第三权重,例如该第三权重值可以为6;因为节点4连接架顶交换机3,节点1连接架顶交换机1,架顶交换机3连接叶子交换机2,架顶交换机1连接叶子交换机1,叶子交换机1和叶子交换机2连接同一个脊交换机1,那么可以确定节点4中的Pod7和Pod8的权重为第四权重,例如该第四权重可以为7。
步骤S303、第一节点根据所述每个Pod的权重从所述多个Pod中选择目标Pod。
具体地,第一节点根据每个Pod的权重值的大小,从多个Pod中选择权重值小的Pod为目标Pod,目标Pod为多个Pod中的一个Pod,目标Pod用于处理所述第一节点中当前待处理的任务。可选的,当存在多个权重值最小的Pod时,可以对多个权重值最小的Pod做进一步选择,从而选择其中一个作为目标Pod。
例如,又如图4所示,假若在节点1(即第一节点)中的Pod2的权重值为4,在节点2中的Pod3和Pod4的权重值为5,在节点3中的Pod5和Pod6的权重值为6,在节点4中的Pod7和Pod8的权重值为7;因为4<5<6<7,那么第一节点选择Pod2处理当前待处理的任务,例如,有Pod2对打开视频软件的请求进行响应以提供相应服务。
在一种可选的方案中,所述根据所述每个Pod的权重从所述多个Pod中选择目标Pod,可以为:当所述多个Pod中的每个Pod的负载都相同时,从所述多个Pod中选择权重最小的Pod为所述目标Pod。其中,Pod的负载表示Pod所在的节点的中央处理器CPU、内存、带宽等一个或多个资源的使用率。
以负载为CPU的使用率为例,假若Pod2的所在节点1的CPU的使用率为50%、Pod3和Pod4的所在节点2的CPU的使用率为50%、Pod5和Pod6的所在节点3的CPU的使用率为50%、Pod7和Pod8的所在节点4的CPU使用率为50%,Pod2的权重值为4、Pod3和Pod4的权重值为5、Pod5和Pod6的权重值为6、Pod7和Pod8的权重值为7,因为4<5<6<7,那么第一节点从多个Pod中选择权重值最小的Pod2为目标Pod。
在一种可选的方案中,所述根据所述每个Pod的权重从所述多个Pod中选择目标Pod,可以为:当所述多个Pod的负载不同时,根据所述多个Pod中每个Pod的负载以及每个Pod的权重从所述多个Pod中选择所述目标Pod。
可选的,可以预先根据多条数据记录(其中,每一条数据记录包括一个负载值、一个权重值和一个Pod)进行训练,从而得出能够表征负载和权重两者与目标Pod的对应关系的推荐模型,然后将本申请实施例中实时得到的每个Pod的负载和权重输入到该推荐模型中,以由该推荐模型推荐得到一个目标Pod,推荐得到的目标Pod即为本申请所选择的目标Pod。
可选的,还可以预先配置相应策略,基于该策略综合考量负载和权重的影响,最终选择出一个Pod作为目标Pod。
可选的,也可以预先配置相应算法,将每个Pod的负载和权重代入到该算法中从而输出表征对每个Pod的选择倾向的数值,然后根据表征对每个Pod的选择倾向的数值来选择一个Pod为目标Pod。假若当节点的CPU的使用率为10%时,节点中的Pod的影响因子为1,当节点的CPU的使用率为20%时,节点中的Pod的影响因子为2,当节点的CPU的使用率为30%时,节点中的Pod的影响因子为3,当节点的CPU的使用率为40%时,节点中的Pod的影响因子为4。假若Pod2的所在节点1的CPU的使用率为10%,即Pod2的影响因子为1,Pod3和Pod4的所在节点2的CPU的使用率为20%,即Pod3和Pod4的影响因子为2,Pod5和Pod6的所在节点3的CPU的使用率为30%,即Pod3和Pod4的影响因子为3,Pod7和Pod8的所在节点4的CPU的使用率为40%,即Pod7和Pod8的影响因子为4,因为Pod2的权重值为4、Pod3和Pod4的权重值为5、Pod5和Pod6的权重值为6、Pod7和Pod8的权重值为7,那么第一节点选择权重值和影响因子的和最小的Pod为目标Pod,因为Pod2的影响因子与权重值的和为5,Pod3的影响因子与权重值的和为7(Pod4同理),Pod5的影响因子与权重值的和为9(Pod6同理),Pod7的影响因子与权重值的和为11(Pod8同理),可选的,哪个Pod的影响因子与权重值的和越小,则选择该Pod作为目标Pod的倾向越强,由于5<7<9<11,那么第一节点选择Pod2为目标Pod。若Pod的影响因子和权重值的和相同时,第一节点选择权重值较小的Pod为目标Pod。
以上仅以Pod所在节点的CPU的使用率作为Pod的负载,当使用Pod所在节点的多种资源的使用率作为Pod的负载时,本领域技术人员可以设计多种不同的算法来确定该节点的多种资源的综合使用率,并将该综合使用率作为该Pod的负载。
在一种可选的方案中,所述确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息之前,可以将所述第一节点中需要处理的任务的请求通过轮循算法定向到所述负载均衡集群中的多个Pod。
例如,假若第一节点需要处理的任务的请求可以为打开视频软件,负载均衡集群中的多个Pod都能够提供打开视频软件的请求的服务,那么第一节点根据通过轮循的算法将打开视频软件的请求定向到负载均衡集群中某一个Pod,该某一个Pod响应定向到自己的请求以提供相应服务。
可选的,第一节点根据每个Pod的权重从多个Pod中选择目标Pod之后,可以将第一节点中当前待处理的任务定向到目标Pod,以指示目标Pod执行当前待处理的任务。例如,待处理任务可以为打开视频软件的请求,访问某个网址的请求等。
在图3所描述的方法中,通过根据每个Pod的拓扑信息确定每个Pod的权重,以将每个Pod的位置关系量化,因此权重值的大小能够反映每个Pod所在的节点与第一节点之间跨交换机的层数,之后就可以根据每个pod的权重值的大小选择跨交换机的层数少的目标Pod处理第一节点中当前待处理的任务,避免了选择跨交换机的层数多的Pod处理第一节点中当前待处理的任务,减少了网络开销。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图7,图7是本申请实施例提供的一种负载均衡装置的结构示意图,该负载均衡装置可以为上述第一节点,或者第一节点中的器件;该负载均衡装置700可以包括第一确定单元701,第二确定单元702和选择单元703。
第一确定单元701,用于确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,所述多个Pod分布在至少两个节点上;
第二确定单元702,用于根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重;
选择单元703,用于根据所述每个Pod的权重从所述多个Pod中选择目标Pod,其中,所述目标Pod用于处理所述第一节点中当前待处理的任务。
在上述装置中,通过根据每个Pod的拓扑信息确定每个Pod的权重,以将每个Pod的位置关系量化,因此权重值的大小能够反映每个Pod所在的节点与第一节点之间跨交换机的层数,之后就可以根据每个pod的权重值的大小选择跨交换机的层数少的目标Pod处理第一节点中当前待处理的任务,避免了选择跨交换机的层数多的Pod处理第一节点中当前待处理的任务,减少了网络开销。
在一种可选方案中,所述负载均衡集群包括控制节点和至少两个计算节点,所述第一节点为所述至少两个计算节点中的一个,所述控制节点用于管理所述至少两个计算节点,所述多个Pod分布在所述至少两个计算节点上。
在又一种可选方案中,所述第一确定单元701用于:接收所述控制节点发送的所述多个Pod中的每个Pod的拓扑信息。
在上述装置中,第一节点无需采集其他计算节点的LLDP信息,直接通过接收控制节点发送的多个Pod中每个Pod的拓扑信息,更加快速,节约了选择目标Pod的时间。
在又一种可选方案中,所述第一确定单元701用于:采集所述至少两个节点的链路层发现协议LLDP信息;根据所述至少两个节点的所述LLDP信息,生成所述多个Pod中的每个Pod的拓扑信息。
在上述装置中,第一节点需要与至少两个节点进行通信,采集至少两个节点的LLDP信息,根据实时采集LLDP信息生成多个Pod中的每个Pod的拓扑信息,这种生成拓扑信息的方式,更加准确。
在又一种可选方案中,
在所述第一节点中的Pod的权重为第一权重;
在第二节点中的Pod的权重为第二权重,所述第二节点与所述第一节点连接同一个架顶交换机上,所述第二节点的互联网协议IP地址与所述第一节点的IP地址属于同一网段;
在第三节点中的Pod的权重为第三权重,所述第三节点与所述第一节点连接不同的架顶交换机,所述不同的架顶交换机连接同一个叶子交换机;
在第四节点中的Pod的权重为第四权重,所述第四节点与所述第一节点连接不同的叶子交换机,所述不同的叶子交换机连接同一个脊交换机。
在一个实现方式中,第一权重<第二权重<第三权重<第四权重。本实施方式中,权重越大,计算出的开销越大,与该开销相关的Pod被选择的几率越小。
在另一个实现方式中,第一权重>第二权重>第三权重>第四权重。本实施方式中,权重越大,计算出的开销越小,与该开销相关的Pod被选择的几率越大。
在又一种可选方案中,所述选择单元703,用于在所述多个Pod中的每个Pod的负载都相同的情况下,从所述多个Pod中选择权重最小的Pod为所述目标Pod;由于权重最小的Pod与第一节点的跨交换机层数最少,因此在负载都相同的情况下通过这种方式选择的目标Pod能够节约网络开销。
在另一种可选方案中,所述选择单元703,用于在所述多个Pod的负载不同的情况下,根据所述多个Pod中每个Pod的负载以及所述每个Pod的权重从所述多个Pod中选择所述目标Pod。通过综合考虑每个Pod的权重值的大小和每个Pod的负载来选择目标Pod的方式,能够在负载均衡和节约网络开销两方面进行平衡,提高负载均衡集群的整体性能。
在又一种可选方案中,所述装置还包括定向单元,该定向单元,用于在所述选择单元703根据所述每个Pod的权重从所述多个Pod中选择目标Pod之后,将所述第一节点中针对所述当前待处理的任务定向到所述目标Pod,以指示所述目标Pod处理所述当前待处理的任务。
需要说明的是,每个单元的实现及有益效果还可以对应参照图3所示的方法实施例的相应描述。
请参见图8,图8是本申请实施例提供的另一种负载均衡装置800,该负载均衡装置可以为上述各实施方式中第一节点,或者第一节点中的一个虚拟机;负载均衡装置800包括处理器801、存储器802和通信接口803,处理器801中包括控制面805和数据面806,所述处理器801、存储器802和通信接口803通过总线804相互连接。
存储器802包括但不限于是随机存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器802用于存储计算机程序及数据。通信接口803用于接收和发送数据。
处理器801可以是一个或多个中央处理器(central processing unit,CPU),在处理器801是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该负载均衡装置800中的处理器801调用存储器802中存储的计算机程序,用于执行以下操作:
通过控制面805确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,所述多个Pod分布在至少两个节点上;
通过控制面805根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重;
通过数据面806根据所述每个Pod的权重从所述多个Pod中选择目标Pod,其中,所述目标Pod用于处理所述第一节点中当前待处理的任务。
在上述负载均衡装置中,通过根据每个Pod的拓扑信息确定每个Pod的权重,以将每个Pod的位置关系量化,因此权重值的大小能够反映每个Pod所在的节点与第一节点之间跨交换机的层数,之后就可以根据每个pod的权重值的大小选择跨交换机的层数少的目标Pod处理第一节点中当前待处理的任务,避免了选择跨交换机的层数多的Pod处理第一节点中当前待处理的任务,减少了网络开销。
在一种可选方案中,所述负载均衡集群包括控制节点和至少两个计算节点,所述第一节点为所述至少两个计算节点中的一个,所述控制节点用于管理所述至少两个计算节点,所述多个Pod分布在所述至少两个计算节点上。
在又一种可选方案中,所述处理器801用于:
通过所述通信接口803接收所述控制节点发送的所述多个Pod中的每个Pod的拓扑信息。
这样,该负载均衡装置无需采集其他计算节点的LLDP信息,直接通过接收控制节点发送的多个Pod中每个Pod的拓扑信息的方式,更加快速,节约了选择目标Pod的时间。
在又一种可选方案中,所述处理器801用于:
采集所述至少两个节点的链路层发现协议LLDP信息;
根据所述至少两个节点的所述LLDP信息,生成所述多个Pod中的每个Pod的拓扑信息。
这样,该负载均衡装置需要与至少两个节点进行通信,采集至少两个节点的LLDP信息,根据实时采集LLDP信息生成多个Pod中的每个Pod的拓扑信息,这种生成拓扑信息的方式,更加准确。
可选地,在所述第一节点中的Pod的权重为第一权重;在第二节点中的Pod的权重为第二权重,所述第二节点与所述第一节点连接同一个架顶交换机上,所述第二节点的互联网协议IP地址与所述第一节点的IP地址属于同一网段;在第三节点中的Pod的权重为第三权重,所述第三节点与所述第一节点连接不同的架顶交换机,所述不同的架顶交换机连接同一个叶子交换机;在第四节点中的Pod的权重为第四权重,所述第四节点与所述第一节点连接不同的叶子交换机,所述不同的叶子交换机连接同一个脊交换机。
在一个实现方式中,第一权重<第二权重<第三权重<第四权重。本实施方式中,权重越大,计算出的开销越大,与该开销相关的Pod被选择的几率越小。
在另一个实现方式中,第一权重>第二权重>第三权重>第四权重。本实施方式中,权重越大,计算出的开销越小,与该开销相关的Pod被选择的几率越大。
在又一种可选方案中,在根据所述每个Pod的权重从所述多个Pod中选择目标Pod方面,所述处理器801用于:
当所述多个Pod中的每个Pod的负载都相同时,从所述多个Pod中选择权重最小的Pod为所述目标Pod;由于权重最小的Pod与第一节点的跨交换机层数最少,因此在负载都相同的情况下通过这种方式选择的目标Pod能够节约网络开销。
当所述多个Pod的负载不同时,根据所述多个Pod中每个Pod的负载以及所述每个Pod的权重从所述多个Pod中选择所述目标Pod;通过综合考虑每个Pod的权重值的大小和每个Pod的负载来选择目标Pod的方式,能够在负载均衡和节约网络开销两方面进行平衡,提高负载均衡集群的整体性能。
在又一种可选方案中,所述处理器801还用于:
在根据所述每个Pod的权重从所述多个Pod中选择目标Pod之后,将所述第一节点中所述当前待处理的任务定向到所述目标Pod,以指示所述目标Pod处理所述当前待处理的任务。
需要说明的是,各个操作的实现及有益效果还可以对应参照图3所示的方法实施例的相应描述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在处理器上运行时,实现图3所示的方法。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,实现图3所示的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程可以由计算机程序来完成,或者由计算机程序驱动相关的硬件完成,该计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可实现包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储计算机程序代码的介质。

Claims (16)

1.一种负载均衡方法,其特征在于,包括:
确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,所述多个Pod分布在至少两个节点上;
根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重;
根据所述每个Pod的权重从所述多个Pod中选择目标Pod,其中,所述目标Pod用于处理所述第一节点中当前待处理的任务。
2.根据权利要求1所述的方法,其特征在于,所述负载均衡集群包括控制节点和至少两个计算节点,所述第一节点为所述至少两个计算节点中的一个,所述控制节点用于管理所述至少两个计算节点,所述多个Pod分布在所述至少两个计算节点上。
3.根据权利要求2所述的方法,其特征在于,所述确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,包括:
接收所述控制节点发送的所述多个Pod中的每个Pod的拓扑信息。
4.根据权利要求1或2所述的方法,其特征在于,所述确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,包括:
采集所述至少两个节点的链路层发现协议LLDP信息;
根据所述至少两个节点的所述LLDP信息,生成所述多个Pod中的每个Pod的拓扑信息。
5.根据权利要求1所述的方法,其特征在于:
在所述第一节点中的Pod的权重为第一权重;
在第二节点中的Pod的权重为第二权重,所述第二节点与所述第一节点连接同一个架顶交换机上,所述第二节点的互联网协议IP地址与所述第一节点的IP地址属于同一网段;
在第三节点中的Pod的权重为第三权重,所述第三节点与所述第一节点连接不同的架顶交换机,所述不同的架顶交换机连接同一个叶子交换机;
在第四节点中的Pod的权重为第四权重,所述第四节点与所述第一节点连接不同的叶子交换机,所述不同的叶子交换机连接同一个脊交换机。
6.根据权利要求1所述的方法,其特征在于,所述根据所述每个Pod的权重从所述多个Pod中选择目标Pod,包括:
当所述多个Pod中的每个Pod的负载都相同时,从所述多个Pod中选择权重最小的Pod为所述目标Pod;
或者
当所述多个Pod的负载不同时,根据所述多个Pod中每个Pod的负载以及所述每个Pod的权重从所述多个Pod中选择所述目标Pod。
7.根据权利要求1所述的方法,其特征在于,所述根据所述每个Pod的权重从所述多个Pod中选择目标Pod之后,还包括:
将所述第一节点中所述当前待处理的任务定向到所述目标Pod,以指示所述目标Pod处理所述当前待处理的任务。
8.一种负载均衡装置,其特征在于,包括:
第一确定单元,用于确定第一节点所属的负载均衡集群中的多个最小管理单元Pod中的每个Pod的拓扑信息,所述多个Pod分布在至少两个节点上;
第二确定单元,用于根据所述多个Pod中的每个Pod的拓扑信息确定所述每个Pod的权重;
选择单元,用于根据所述每个Pod的权重从所述多个Pod中选择目标Pod,其中,所述目标Pod用于处理所述第一节点中当前待处理的任务。
9.根据权利要求8所述的装置,其特征在于,所述负载均衡集群包括控制节点和至少两个计算节点,所述第一节点为所述至少两个计算节点中的一个,所述控制节点用于管理所述至少两个计算节点,所述多个Pod分布在所述至少两个计算节点上。
10.根据权利要求9所述的装置,其特征在于,所述第一确定单元用于:接收所述控制节点发送的所述多个Pod中的每个Pod的拓扑信息。
11.根据权利要求8或9所述的装置,其特征在于,所述第一确定单元用于:采集所述至少两个节点的链路层发现协议LLDP信息;根据所述至少两个节点的所述LLDP信息,生成所述多个Pod中的每个Pod的拓扑信息。
12.根据权利要求8所述的装置,其特征在于:
在所述第一节点中的Pod的权重为第一权重;
在第二节点中的Pod的权重为第二权重,所述第二节点与所述第一节点连接同一个架顶交换机上,所述第二节点的互联网协议IP地址与所述第一节点的IP地址属于同一网段;
在第三节点中的Pod的权重为第三权重,所述第三节点与所述第一节点连接不同的架顶交换机,所述不同的架顶交换机连接同一个叶子交换机;
在第四节点中的Pod的权重为第四权重,所述第四节点与所述第一节点连接不同的叶子交换机,所述不同的叶子交换机连接同一个脊交换机。
13.根据权利要求8所述的装置,其特征在于,
所述选择单元,用于在所述多个Pod中的每个Pod的负载都相同的情况下,从所述多个Pod中选择权重最小的Pod为所述目标Pod;
或者
所述选择单元,用于在所述多个Pod的负载不同的情况下,根据所述多个Pod中每个Pod的负载以及所述每个Pod的权重从所述多个Pod中选择所述目标Pod。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
定向单元,用于在所述选择单元根据所述每个Pod的权重从所述多个Pod中选择目标Pod之后,将所述第一节点中所述当前待处理的任务定向到所述目标Pod,以指示所述目标Pod处理所述当前待处理的任务。
15.一种第一节点,其特征在于,所述第一节点包括处理器、存储器和通信接口,所述存储器用于存储计算机程序,所述处理器调用所述计算机程序,用于使所述负载均衡服务器实现权利要求1-7中任意一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN201911323403.9A 2019-12-19 2019-12-19 一种负载均衡方法及相关设备 Active CN113014611B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201911323403.9A CN113014611B (zh) 2019-12-19 2019-12-19 一种负载均衡方法及相关设备
EP20901734.2A EP4068725A4 (en) 2019-12-19 2020-07-30 LOAD BALANCING METHOD AND RELATED DEVICE
PCT/CN2020/106021 WO2021120633A1 (zh) 2019-12-19 2020-07-30 一种负载均衡方法及相关设备
US17/843,754 US20220318071A1 (en) 2019-12-19 2022-06-17 Load balancing method and related device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911323403.9A CN113014611B (zh) 2019-12-19 2019-12-19 一种负载均衡方法及相关设备

Publications (2)

Publication Number Publication Date
CN113014611A CN113014611A (zh) 2021-06-22
CN113014611B true CN113014611B (zh) 2024-05-14

Family

ID=76381949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911323403.9A Active CN113014611B (zh) 2019-12-19 2019-12-19 一种负载均衡方法及相关设备

Country Status (4)

Country Link
US (1) US20220318071A1 (zh)
EP (1) EP4068725A4 (zh)
CN (1) CN113014611B (zh)
WO (1) WO2021120633A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11729263B2 (en) * 2020-09-22 2023-08-15 Ribbon Communications Operating Company, Inc. Methods, apparatus and systems for cloud native application multi-factor load balancing
CN113596152B (zh) * 2021-07-28 2024-03-26 杭州萤石软件有限公司 负载均衡实现方法、系统及装置
US20230239237A1 (en) * 2022-01-27 2023-07-27 Dell Products L.P. Service discovery method for networks with multicast restrictions
KR20240061995A (ko) * 2022-11-01 2024-05-08 삼성전자주식회사 컨테이너 기반 다중 클러스터 환경에서 서비스의 가중치 기반 고 가용성 제어 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685054A (zh) * 2013-12-18 2014-03-26 武汉烽火网络有限责任公司 基于业务感知的多路径负载均衡方法
CN108519911A (zh) * 2018-03-23 2018-09-11 上饶市中科院云计算中心大数据研究院 一种基于容器的集群管理系统中资源的调度方法和装置
CN110389843A (zh) * 2019-07-29 2019-10-29 广东浪潮大数据研究有限公司 一种业务调度方法、装置、设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291707B1 (en) * 2015-05-18 2019-05-14 Twitter, Inc. Systems and methods for balancing storage resources in a distributed database
US10242370B2 (en) * 2016-05-26 2019-03-26 Cloudcolt Software Inc. Enforcing compliance with administrative requirements relating to using computing resources
CN107819695B (zh) * 2017-10-19 2020-11-10 西安电子科技大学 一种基于sdn的分布式控制负载均衡系统与方法
CN109167835B (zh) * 2018-09-13 2021-11-26 重庆邮电大学 一种基于kubernetes的物理资源调度方法及系统
CN109960585B (zh) * 2019-02-02 2021-05-14 浙江工业大学 一种基于kubernetes的资源调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685054A (zh) * 2013-12-18 2014-03-26 武汉烽火网络有限责任公司 基于业务感知的多路径负载均衡方法
CN108519911A (zh) * 2018-03-23 2018-09-11 上饶市中科院云计算中心大数据研究院 一种基于容器的集群管理系统中资源的调度方法和装置
CN110389843A (zh) * 2019-07-29 2019-10-29 广东浪潮大数据研究有限公司 一种业务调度方法、装置、设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mega Data Center for Elastic Internet Applications;Hangwei Qian;IEEE;20140519;正文第1-7页 *
基于软件定义网络的服务器集群负载均衡技术研究;于天放;芮兰兰;邱雪松;;电子与信息学报(12);全文 *

Also Published As

Publication number Publication date
CN113014611A (zh) 2021-06-22
US20220318071A1 (en) 2022-10-06
EP4068725A4 (en) 2023-02-22
EP4068725A1 (en) 2022-10-05
WO2021120633A1 (zh) 2021-06-24

Similar Documents

Publication Publication Date Title
CN113014611B (zh) 一种负载均衡方法及相关设备
US9699244B2 (en) Load balanced network file accesses
CN112532675B (zh) 一种网络边缘计算系统的创建方法、装置及介质
CN102187315B (zh) 在虚拟环境中获取用于服务器负载均衡的反馈信息的方法和装置
US10715479B2 (en) Connection redistribution in load-balanced systems
CN104239227B (zh) 一种虚拟化存储管理装置、本地虚拟存储管理装置及方法
CN107078969A (zh) 实现负载均衡的计算机设备、系统和方法
Nguyen et al. Toward highly scalable load balancing in kubernetes clusters
CN106850759A (zh) MySQL数据库集群处理方法及其处理系统
CN105308931A (zh) 分布负载平衡器中的不对称封包流
WO2019210580A1 (zh) 访问请求处理方法、装置、计算机设备和存储介质
CN108933829A (zh) 一种负载均衡方法及装置
CN108833462A (zh) 一种面向微服务的自注册服务发现的系统及方法
CN109510878B (zh) 一种长连接会话保持方法和装置
US8606908B2 (en) Wake-up server
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
CN111556123A (zh) 一种基于边缘计算的自适应网络快速配置及负载均衡系统
CN101534255A (zh) 一种实现特定请求定向处理的方法及装置
CN112655185B (zh) 软件定义网络中的服务分配的设备、方法和存储介质
KR102119456B1 (ko) 분산 클라우드 환경에서의 분산 브로커 코디네이터 시스템 및 방법
CN109005071B (zh) 一种决策部署方法和调度设备
CN112799849B (zh) 一种数据处理方法、装置、设备及存储介质
JP6546566B2 (ja) 並列負荷分散システム、並列負荷分散方法、sdnコントローラホスト及びプログラム
CN114900526A (zh) 负载均衡方法及系统、计算机存储介质、电子设备
Berwal et al. Load Balancing in cloud computing

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