CN112000477A - 一种pod中负载均衡的方法、装置、设备及介质 - Google Patents

一种pod中负载均衡的方法、装置、设备及介质 Download PDF

Info

Publication number
CN112000477A
CN112000477A CN202010850090.9A CN202010850090A CN112000477A CN 112000477 A CN112000477 A CN 112000477A CN 202010850090 A CN202010850090 A CN 202010850090A CN 112000477 A CN112000477 A CN 112000477A
Authority
CN
China
Prior art keywords
pod
service
working node
weight
newly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010850090.9A
Other languages
English (en)
Other versions
CN112000477B (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.)
Beijing Inspur Data Technology Co Ltd
Original Assignee
Beijing Inspur Data Technology 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 Beijing Inspur Data Technology Co Ltd filed Critical Beijing Inspur Data Technology Co Ltd
Priority to CN202010850090.9A priority Critical patent/CN112000477B/zh
Publication of CN112000477A publication Critical patent/CN112000477A/zh
Application granted granted Critical
Publication of CN112000477B publication Critical patent/CN112000477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种pod中负载均衡的方法、装置、设备及计算机可读存储介质,方法包括:根据每个服务对应的pod对服务的响应确定迟钝pod;获取各工作节点包含的pod的总数及迟钝pod的数量;根据pod的总数及迟钝pod的数量计算对应的工作节点的权重;当在集群中新建服务并在各工作节点中创建对应的pod时,根据各工作节点的权重将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod上。本申请公开的上述技术方案,通过根据工作节点中包含的pod及迟钝pod的情况进行工作节点权重计算而实现将工作节点的性能考虑在内,以便在请求分配时降低性能较差的工作节点的压力,从而便于提高集群对服务中请求的处理性能。

Description

一种pod中负载均衡的方法、装置、设备及介质
技术领域
本申请涉及Kubernetes集群技术领域,更具体地说,涉及一种pod中负载均衡的方法、装置、设备及计算机可读存储介质。
背景技术
Kubernetes集群中的服务下面有分布在多个工作节点上的pod(是一个或多个容器的组合)与之匹配,当外部请求发送过来时,服务按照各个pod所负载的流量总体相等的负载均衡策略将外部请求分发到工作节点中与服务对应的pod上,但是,这种负载均衡策略无法适应复杂的场景。
目前,为了使得pod中负载均衡可以适应于比较复杂的场景,则可以接入第三方的负载均衡器,以利用第三方的负载均衡器及其内部包含的负载均衡算法实现负载均衡,具体地,在新建服务并在各工作节点上创建与服务对应的pod时,第三方所提供的负载均衡器可以先为与服务对应的各个pod分配相同的权重,然后,再在处理过程中调整pod的权重而根据调整后的权重进行请求分配,当再新建服务并在各工作节点上创建对应的pod中,第三方的负载均衡器会重复执行先为与服务对应的各个pod分配相同的权重等步骤。在上述负载均衡方式中,由于每次新建服务时均是为其对应的各个pod分配相同的权重,因此,这就会加重性能比较差的工作节点的处理压力,从而会降低Kubernetes集群对请求的处理性能。
综上所述,如何降低性能较差的工作节点的处理压力,以便于提高集群对请求的处理性能,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种pod中负载均衡的方法、装置、设备及计算机可读存储介质,用于降低性能较差的工作节点的处理压力,以便于提高集群对请求的处理性能。
为了实现上述目的,本申请提供如下技术方案:
一种pod中负载均衡的方法,包括:
根据集群中每个服务对应的pod对所述服务的响应,确定各所述服务对应的迟钝pod;
获取所述集群中各工作节点包含的pod的总数及所述迟钝pod的数量;
根据所述pod的总数及所述迟钝pod的数量计算对应的所述工作节点的权重;
当在所述集群中新建服务并在各所述工作节点中创建对应的pod时,根据各所述工作节点的权重,将新建的服务对应的请求分配到各所述工作节点中与所述新建的服务对应的pod上。
优选的,根据所述pod的总数及所述迟钝pod的数量计算对应的所述工作节点的权重,包括:
根据Q=100%*(1-C/T)计算对应的所述工作节点的权重Q;
其中,C为对应的所述工作节点中包含的所述迟钝pod的数量,T为对应的所述工作节点中包含的所述pod的总数。
优选的,在根据Q=100%*(1-C/T)计算对应的所述工作节点的权重Q之后,还包括:
利用Q'=Q+Q0计算对应的所述工作节点的处理后权重Q';其中,Q0为预设百分数。
优选的,在利用Q'=Q+Q0计算对应的所述工作节点的处理后权重Q'之后,还包括:
对处理后权重Q'进行取整操作。
优选的,在根据各所述工作节点的权重,将新建的服务对应的请求分配到各所述工作节点中与所述新建的服务对应的pod上时,还包括:
若所述工作节点中创建有多个与所述新建的服务对应的pod,则将所述工作节点应分配到的请求平均分配到所述工作节点中与所述新建的服务对应的各pod上。
优选的,在根据各所述工作节点的权重,将新建的服务对应的请求分配到各所述工作节点中与所述新建的服务对应的pod中之前,还包括:
创建虚拟服务器,利用所述虚拟服务器接收与所述新建的服务对应的请求。
一种pod中负载均衡的装置,包括:
确定模块,用于根据集群中每个服务对应的pod对所述服务的响应,确定各所述服务对应的迟钝pod;
获取模块,用于获取所述集群中各工作节点包含的pod的总数及所述迟钝pod的数量;
计算模块,用于根据所述pod的总数及所述迟钝pod的数量计算对应的所述工作节点的权重;
分配模块,用于当在所述集群中新建服务并在各所述工作节点中创建对应的pod时,根据各所述工作节点的权重,将新建的服务对应的请求分配到各所述工作节点中与所述新建的服务对应的pod上。
优选的,所述计算模块包括:
第一计算单元,用于根据Q=100%*(1-C/T)计算对应的所述工作节点的权重Q;
其中,C为对应的所述工作节点中包含的所述迟钝pod的数量,T为对应的所述工作节点中包含的所述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的请求分配数量,以降低性能较差的工作节点的压力,进而便于提高集群对服务中请求的处理性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种pod中负载均衡的方法的流程图;
图2为本申请实施例提供的集群中服务、pod及迟钝pod的一具体分布示意图;
图3为本申请实施例提供的与新建的服务对应的请求的分配示意图;
图4为本申请实施例提供的一种pod中负载均衡的装置的结构示意图;
图5为本申请实施例提供的一种pod中负载均衡的设备的结构示意图;
图6为本申请实施例提供的pod中负载均衡的设备的工作流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,其示出了本申请实施例提供的一种pod中负载均衡的方法的流程图,本申请实施例提供的一种pod中负载均衡的方法,可以包括:
S11:根据集群中每个服务对应的pod对服务的响应,确定各服务对应的迟钝pod。
当在集群中创建服务并在集群中的各工作节点上创建与所创建的服务对应的pod(也即每个服务对应的pod位于集群中的各工作节点)后,可以对每个服务发出上百个请求,并监测每个服务对应的各pod对服务的平均响应时间,并将每个服务下平均响应时间最长的pod确定为服务对应的迟钝pod,也即将每个服务对应的pod中对服务响应最慢的pod确定为其对应的迟钝pod,也就是说,可以根据集群中每个服务对应的pod对服务的响应时间来确定各服务对应的迟钝pod。当然,也可以依据服务对应的各pod对服务响应时的吞吐量来确定服务对应的迟钝pod(在此种情况下,则将吞吐量最小的pod确定为迟钝pod),或者可以综合响应时间和吞吐量来确定迟钝pod,总而言之,无论采用何种响应指标来确定迟钝pod,均是将以该响应指标作为响应能力评判标准时其响应能力最差的pod确定为迟钝pod。
S12:获取集群中各工作节点包含的pod的总数及迟钝pod的数量。
在确定各服务对应的迟钝pod之后,可以获取集群中各工作节点包含的pod的总数以及各工作节点包含的迟钝pod的数量。
需要说明的是,集群中各工作节点包含的pod的总数即为对应工作节点中所有正常运行且已经注册到服务中的pod的总数。
例如:如图2所示,其示出了本申请实施例提供的集群中服务、pod及迟钝pod的一具体分布示意图,集群中运行有服务1-4这四个服务,每个服务对应4个pod,例如:服务1对应pod1-1、pod1-2、pod1-3、pod1-4这4个pod,且集群包括工作节点1-4这四个工作节点,每个工作节点中对应有4个pod,例如:工作节点1中包含pod1-1、pod2-1、pod3-1、pod4-1这4个pod,其中,图2中带有圆点标记的pod即为服务对应的迟钝pod,由图2可知,工作节点1中包含1个迟钝pod,工作节点2中包含3个迟钝pod,工作节点3和工作节点4中均无迟钝pod,工作节点2中的迟钝pod数量远高于其他工作节点。
S13:根据pod的总数及迟钝pod的数量计算对应的工作节点的权重。
在确定出工作节点的pod的总数以及迟钝pod的数量之后,可以根据pod的总数及迟钝pod的数量获取迟钝pod的占比,并根据迟钝pod的占比计算对应的工作节点的权重,其中,迟钝pod的占比大的工作节点的权重小于迟钝pod的占比小的工作节点的权重,也即工作节点的权重越小,表明该工作节点中迟钝pod的占比越大,同时也表明该工作节点的性能越差。
由于在排除服务本身缺陷的情况下,pod的性能实际上就是其所在工作节点上相应进程的性能,因此,迟钝pod的出现归根到底是其所在工作节点的性能问题,所以,可以通过根据各工作节点中pod的总数及迟钝pod的数量所计算出的工作节点的权重来反映对应工作节点的性能情况,并间接地反映出后续在工作节点中所创建出的pod对请求的处理能力,以便于可以更加合理地进行请求分配。
S14:当在集群中新建服务并在各工作节点中创建对应的pod时,根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod上。
当在集群中新建服务并在各工作节点中创建对应的pod时,可以根据步骤S13所计算出的各工作节点的权重来将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod上,以便于利用工作节点中与新建的服务对应的pod来对请求进行处理。
具体地,可以依据各工作节点的权重计算各工作节点在新建的服务中对应的服务权重,并利用各工作节点的服务权重来将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod上,例如:在利用步骤S13计算工作节点1对应的权重为20%、工作节点2对应的权重为30%时(以包含两个工作节点为例),则可以利用100%*(20%/(20%+30%))=40%获取工作节点1对应的服务权重,并利用100%*(30%/(20%+30%))=60%获取工作节点2对应的服务权重,然后,可以根据所计算出的服务权重来进行请求分配,具体即为将服务对应的请求总数与工作节点对应的服务权重相乘,以得到该工作节点应分配到的请求数量,并将对应请求数量的请求分配到该工作节点所包含的与新建的服务对应的pod中。
例如:当集群中包含有工作节点A、工作节点B、工作节点C这三个节点且根据上述过程计算完这三个工作节点的权重及服务权重之后,若在这三个工作节点中均创建与新建的服务对应的pod且服务对应有223个请求时,则可以根据工作节点A的权重在这三个工作节点中的比例(即服务权重)将30个请求分配给工作节点A中与新建的服务对应的pod中,并根据工作节点B的权重在这三个工作节点中的比例将93个请求分配给工作节点B中与新建的服务对应的pod中,且根据工作节点C的权重在这三个工作节点中的比例将100个请求分配给工作节点C中与新建的服务对应的pod中。
其中,在根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod上的过程中,若出现某些pod中分配到的请求为小数的情况时,则可以通过四舍五入操作等取整操作对该小数进行取整,并确保最终所有工作节点中的pod分配到的请求数量之和等于新建的服务对应的请求总数即可。
需要说明的是,由于工作节点中的pod的总数及迟钝pod的数量可能会随时发生变化,因此,则可以实时地执行步骤S12及后续步骤,以进一步提高请求分配的合理性。另外,当在集群中第一次创建服务并在各工作节点中创建与服务对应的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的数量计算对应的工作节点的权重,可以包括:
根据Q=100%*(1-C/T)计算对应的工作节点的权重Q;
其中,C为对应的工作节点中包含的迟钝pod的数量,T为对应的工作节点中包含的pod的总数。
具体可以利用公式Q=100%*(1-C/T)计算对应的工作节点的权重Q,其中,C/T即为迟钝pod在对应工作节点中的占比。
通过上述计算公式可以使性能比较差的工作节点(性能越差,迟钝pod的占比就越大)的权重小于性能比较好的工作节点(性能越好,迟钝pod的占比就越小)的权重,从而使得在各工作节点中创建与新建的服务对应的pod并依据工作节点的权重对服务对应的请求进行分配时,可以使权重大的工作节点中的pod可以分配到多的请求,并使权重小的工作节点中的pod分配到少的请求,以降低性能较差的工作节点的压力,从而避免工作节点发生崩溃,进而便于提高集群对服务的处理性能。
本申请实施例提供的一种pod中负载均衡的方法,在根据Q=100%*(1-CT)计算对应的工作节点的权重Q之后,还可以包括:
利用Q'=Q+Q0计算对应的工作节点的处理后权重Q';其中,Q0为预设百分数。
为了避免内部所包含的pod全部为迟钝pod的工作节点在请求分配时处于闲置状态而造成资源浪费,并造成其他工作节点压力过大,则在根据Q=100%*(1-C/T)计算对应的工作节点的权重Q之后,可以利用Q'=Q+Q0计算对应的工作节点的处理后权重Q',即可以在计算出工作节点的权重Q的基础上为各工作节点的权重分别加一个预设百分数,该预设百分数可以由用户根据经验或集群性能进行设置,例如可以为10%,以使得即使内部所包含的pod全部为迟钝pod的工作节点也能按照处理后权重Q'分配到少许请求,从而避免其处于闲置状态。
本申请实施例提供的一种pod中负载均衡的方法,在利用Q'=Q+Q0计算对应的工作节点的处理后权重Q'之后,还可以包括:
对处理后权重Q'进行取整操作。
在利用Q'=Q+Q0计算对应的工作节点的处理后权重Q'之后,可以通过四舍五入操作或其他取整操作来对得到的处理后权重Q'进行取整操作,以便于根据整数形式的权重进行请求的分配。
本申请实施例提供的一种pod中负载均衡的方法,在根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod上时,还可以包括:
若工作节点中创建有多个与新建的服务对应的pod,将工作节点应分配到的请求平均分配到工作节点中与新建的服务对应的各pod上。
若某个或某些工作节点中创建有多个与新建的服务对应的pod,则可以将创建有多个与新建的服务对应的pod的工作节点应分配到的请求平均分配到该工作节点的各pod中,以使得工作节点中与新建的服务对应的pod可以分配到数量相等的请求,也即对于包含多个与新建的服务对应的pod的工作节点而言,其内部所包含的与新建的服务对应的各pod的地位相同,其中,工作节点应分配到的请求是根据工作节点的权重及新建的服务对应的请求得到的,具体是根据工作节点的服务权重及新建的服务对应的请求得到的。
例如:如图3,其示出了本申请实施例提供的与新建的服务对应的请求的分配示意图,当根据步骤S14计算出工作节点a应分配到80个请求、工作节点b应分配到100个请求、工作节点c应分配到70个请求时,因工作节点a和工作节点c均包含一个与新建的服务对应的pod,则可以将工作节点a和工作节点c应分配到的请求对应分配到各自所包含的pod中,而对于工作节点b而言,因其包含2个与新建的服务对应的pod,则可以将工作节点b应分配到100个请求平均分配到两个节点中,即pod2和pod3分别分配到50个请求。
本申请实施例提供的一种pod中负载均衡的方法,在根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod中之前,还可以包括:
创建虚拟服务器,利用虚拟服务器接收与新建的服务对应的请求。
在根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod中之前,可以创建虚拟服务器(virtual Server),利用该虚拟服务器接收用户发送的与新建的服务对应的请求,并利用虚拟服务器执行根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod中的步骤。
本申请实施例还提供了一种pod中负载均衡的装置,参见图4,其示出了本申请实施例提供的一种pod中负载均衡的装置的结构示意图,可以包括:
确定模块41,用于根据集群中每个服务对应的pod对服务的响应确定迟钝pod;
获取模块42,用于获取集群中各工作节点包含的pod的总数及迟钝pod的数量;
计算模块43,用于根据pod的总数及迟钝pod的数量计算对应的工作节点的权重;
分配模块44,用于当在集群中新建服务并在各工作节点中创建对应的pod时,根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod上。
本申请实施例提供的一种pod中负载均衡的装置,计算模块43可以包括:
第一计算单元,用于根据Q=100%*(1-C/T)计算对应的工作节点的权重Q;
其中,C为对应的工作节点中包含的迟钝pod的数量,T为对应的工作节点中包含的pod的总数。
本申请实施例提供的一种pod中负载均衡的装置,计算模块43还可以包括:
第二计算单元,用于在根据Q=100%*(1-C/T)计算对应的工作节点的权重Q之后,利用Q'=Q+Q0计算对应的工作节点的处理后权重Q';其中,Q0为预设百分数。
本申请实施例提供的一种pod中负载均衡的装置,计算模块43还可以包括:
取整操作单元,用于在利用Q'=Q+Q0计算对应的工作节点的处理后权重Q'之后,对处理后权重Q'进行取整操作。
本申请实施例提供的一种pod中负载均衡的装置,还可以包括:
平均分配模块,用于在根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod上时,若工作节点中创建有多个与新建的服务对应的pod,将工作节点应分配到的请求平均分配到工作节点中与新建的服务对应的各pod上。
本申请实施例提供的一种pod中负载均衡的装置,还可以包括:
创建模块,用于在根据各工作节点的权重,将新建的服务对应的请求分配到各工作节点中与新建的服务对应的pod中之前,创建虚拟服务器,利用虚拟服务器接收与新建的服务对应的请求。
本申请实施例还提供了一种pod中负载均衡的设备,参见图5,其示出了本申请实施例提供的一种pod中负载均衡的设备的结构示意图,可以包括:
外联组件,用于与集群相连,并从集群中获取pod的信息;
存储器,用于存储计算机程序;
处理器,用于根据pod的信息执行计算机程序时可实现上述任一种pod种的负载均衡方法。
需要说明的是,本申请所提供的pod中负载均衡的方法可以由pod中负载均衡的设备进行实现,其可以与集群对接但不依赖于集群,且支持多种CPU架构(包括括x86、arm64、mips64le),其中,处理器可以包括控制单元、virtual Server工厂和权重计算单元。
pod中负载均衡的设备中的外联组件用于通过集群的kube-apiserver(Kubernetes集群最重要的核心组件之一)与集群相连,从集群中获取集群中pod的信息;控制单元负责整体逻辑控制;权重计算单元,用于获取到pod信息后,计算每个工作节点的权重,并反馈给控制单元记录下来;virtual Server工厂用于负责创建virtual Server,接收与服务对应的请求,然后,根据工作节点的权重将请求分配到工作节点中的pod上。
具体可以参见图6,其示出了本申请实施例提供的pod中负载均衡的设备的工作流程图,需要说明的是,pod中负载均衡的设备可以将每个工作节点中的所有pod看做一个矩阵,即一个工作节点中所有正常运行的已经注册到服务中的pod可以组成一个矩阵,则计算工作节点的权重即等于计算矩阵的权重,其中,①:pod中负载均衡的设备通过kube-apiserver连接到集群中,并获取集群中所有pod的信息;②:kube-apiserver将pod的信息反馈到pod中负载均衡的设备;③:pod中负载均衡的设备根据pod的分布情况计算每个矩阵的权重,此时,有新的服务创建并引用pod中负载均衡的设备做服务的负载均衡,pod中负载均衡的设备创建相应的virtual Server为该服务提供负载均衡;④:终端用户发送请求,virtual Server根据矩阵权重按比例分配请求。假如发送来223个请求,工作节点1承担30个,工作节点2承担93个,工作节点3承担100个。关于这部分内容的详细描述可以对应参见上述部分,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现上述任一种pod种的负载均衡方法。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的一种pod中负载均衡的装置、设备及计算机可读存储介质中相关部分的说明可以参见本申请实施例提供的一种pod中负载均衡的方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种pod中负载均衡的方法,其特征在于,包括:
根据集群中每个服务对应的pod对所述服务的响应,确定各所述服务对应的迟钝pod;
获取所述集群中各工作节点包含的pod的总数及所述迟钝pod的数量;
根据所述pod的总数及所述迟钝pod的数量计算对应的所述工作节点的权重;
当在所述集群中新建服务并在各所述工作节点中创建对应的pod时,根据各所述工作节点的权重,将新建的服务对应的请求分配到各所述工作节点中与所述新建的服务对应的pod上。
2.根据权利要求1所述的pod中负载均衡的方法,其特征在于,根据所述pod的总数及所述迟钝pod的数量计算对应的所述工作节点的权重,包括:
根据Q=100%*(1-C/T)计算对应的所述工作节点的权重Q;
其中,C为对应的所述工作节点中包含的所述迟钝pod的数量,T为对应的所述工作节点中包含的所述pod的总数。
3.根据权利要求2所述的pod中负载均衡的方法,其特征在于,在根据Q=100%*(1-C/T)计算对应的所述工作节点的权重Q之后,还包括:
利用Q'=Q+Q0计算对应的所述工作节点的处理后权重Q';其中,Q0为预设百分数。
4.根据权利要求3所述的pod中负载均衡的方法,其特征在于,在利用Q'=Q+Q0计算对应的所述工作节点的处理后权重Q'之后,还包括:
对处理后权重Q'进行取整操作。
5.根据权利要求1所述的pod中负载均衡的方法,其特征在于,在根据各所述工作节点的权重,将新建的服务对应的请求分配到各所述工作节点中与所述新建的服务对应的pod上时,还包括:
若所述工作节点中创建有多个与所述新建的服务对应的pod,则将所述工作节点应分配到的请求平均分配到所述工作节点中与所述新建的服务对应的各pod上。
6.根据权利要求1所述的pod中负载均衡的方法,其特征在于,在根据各所述工作节点的权重,将新建的服务对应的请求分配到各所述工作节点中与所述新建的服务对应的pod中之前,还包括:
创建虚拟服务器,利用所述虚拟服务器接收与所述新建的服务对应的请求。
7.一种pod中负载均衡的装置,其特征在于,包括:
确定模块,用于根据集群中每个服务对应的pod对所述服务的响应,确定各所述服务对应的迟钝pod;
获取模块,用于获取所述集群中各工作节点包含的pod的总数及所述迟钝pod的数量;
计算模块,用于根据所述pod的总数及所述迟钝pod的数量计算对应的所述工作节点的权重;
分配模块,用于当在所述集群中新建服务并在各所述工作节点中创建对应的pod时,根据各所述工作节点的权重,将新建的服务对应的请求分配到各所述工作节点中与所述新建的服务对应的pod上。
8.根据权利要求7所述的pod中负载均衡的装置,其特征在于,所述计算模块包括:
第一计算单元,用于根据Q=100%*(1-C/T)计算对应的所述工作节点的权重Q;
其中,C为对应的所述工作节点中包含的所述迟钝pod的数量,T为对应的所述工作节点中包含的所述pod的总数。
9.一种pod中负载均衡的设备,其特征在于,包括:
外联组件,用于与集群相连,并从所述集群中获取pod的信息;
存储器,用于存储计算机程序;
处理器,用于根据所述pod的信息执行所述计算机程序时实现如权利要求1至6任一项所述的pod中负载均衡的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的pod中负载均衡的方法的步骤。
CN202010850090.9A 2020-08-21 2020-08-21 一种pod中负载均衡的方法、装置、设备及介质 Active CN112000477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010850090.9A CN112000477B (zh) 2020-08-21 2020-08-21 一种pod中负载均衡的方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010850090.9A CN112000477B (zh) 2020-08-21 2020-08-21 一种pod中负载均衡的方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN112000477A true CN112000477A (zh) 2020-11-27
CN112000477B CN112000477B (zh) 2022-06-07

Family

ID=73472995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010850090.9A Active CN112000477B (zh) 2020-08-21 2020-08-21 一种pod中负载均衡的方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112000477B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116132447A (zh) * 2022-12-21 2023-05-16 天翼云科技有限公司 一种基于Kubernetes的负载均衡方法及其装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867580A (zh) * 2010-06-03 2010-10-20 北京蓝汛通信技术有限责任公司 一种分配网络流量的方法及装置
US20180060120A1 (en) * 2016-08-29 2018-03-01 TidalScale, Inc. Resource migration negotiation
CN108737573A (zh) * 2018-06-28 2018-11-02 郑州云海信息技术有限公司 一种分布式存储集群及其服务响应控制方法、装置和设备
CN109167702A (zh) * 2018-08-28 2019-01-08 新华三大数据技术有限公司 一种基于负载均衡的分布式测试方法及装置
CN109710376A (zh) * 2018-12-12 2019-05-03 中国联合网络通信集团有限公司 容器集群管理系统的动态调度方法和装置
CN109710412A (zh) * 2018-12-28 2019-05-03 广州市巨硅信息科技有限公司 一种基于动态反馈的Nginx负载均衡方法
CN110221915A (zh) * 2019-05-21 2019-09-10 新华三大数据技术有限公司 节点调度方法和装置
CN110764915A (zh) * 2019-10-29 2020-02-07 西安邮电大学 一种针对kubernetes主节点选择的优化方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867580A (zh) * 2010-06-03 2010-10-20 北京蓝汛通信技术有限责任公司 一种分配网络流量的方法及装置
US20180060120A1 (en) * 2016-08-29 2018-03-01 TidalScale, Inc. Resource migration negotiation
CN108737573A (zh) * 2018-06-28 2018-11-02 郑州云海信息技术有限公司 一种分布式存储集群及其服务响应控制方法、装置和设备
CN109167702A (zh) * 2018-08-28 2019-01-08 新华三大数据技术有限公司 一种基于负载均衡的分布式测试方法及装置
CN109710376A (zh) * 2018-12-12 2019-05-03 中国联合网络通信集团有限公司 容器集群管理系统的动态调度方法和装置
CN109710412A (zh) * 2018-12-28 2019-05-03 广州市巨硅信息科技有限公司 一种基于动态反馈的Nginx负载均衡方法
CN110221915A (zh) * 2019-05-21 2019-09-10 新华三大数据技术有限公司 节点调度方法和装置
CN110764915A (zh) * 2019-10-29 2020-02-07 西安邮电大学 一种针对kubernetes主节点选择的优化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHUNPU WANG等: ""Randomized load balancing with a helper"", 《2017 INTERNATIONAL CONFERENCE ON COMPUTING, NETWORKING AND COMMUNICATIONS (ICNC)》, 13 March 2017 (2017-03-13) *
平凡等: "基于Kubernetes的动态负载均衡机制研究与设计", 《计算机与数字工程》, no. 01, 20 January 2020 (2020-01-20) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116132447A (zh) * 2022-12-21 2023-05-16 天翼云科技有限公司 一种基于Kubernetes的负载均衡方法及其装置

Also Published As

Publication number Publication date
CN112000477B (zh) 2022-06-07

Similar Documents

Publication Publication Date Title
CN107124472A (zh) 负载均衡方法及装置、计算机可读存储介质
US6742100B1 (en) Method and system for managing memory pools in a partitioned computer system
CN110221915B (zh) 节点调度方法和装置
CN110851529A (zh) 算力调度方法及相关设备
CN111966500A (zh) 资源调度方法、装置、电子设备及存储介质
US6742099B1 (en) Method and system for automatically distributing resources in a partitioned computer system
CN111124687A (zh) 一种cpu资源预留方法、装置及其相关设备
CN110636388A (zh) 一种业务请求分配方法、系统、电子设备及存储介质
CN112000477B (zh) 一种pod中负载均衡的方法、装置、设备及介质
CN114116173A (zh) 动态调整任务分配的方法、装置和系统
CN115168017B (zh) 一种任务调度云平台及其任务调度方法
CN109445863B (zh) 一种基于fpga的数据处理方法、装置、设备及介质
CN112884382B (zh) 云平台的资源配额管理方法、装置、设备以及存储介质
CN109240805B (zh) 虚拟机分配方法及装置
CN114675973A (zh) 资源管理方法、设备、存储介质及程序产品
CN105718297A (zh) 虚拟机建立系统以及方法
CN108228346A (zh) 服务系统及其控制方法
CN111813564B (zh) 集群资源管理方法、装置及容器集群管理系统
CN112346861A (zh) 资源分配方法、装置、设备和超融合系统
CN113918271A (zh) 一种资源管理方法、装置、电子设备及存储介质
CN111796934A (zh) 任务下发方法、装置、存储介质和电子设备
CN111399985A (zh) 云计算环境下基于存储差值迭代的负载均衡方法
CN112559142B (zh) 容器的控制方法、装置、边缘计算系统、介质及设备
CN111597037B (zh) 作业分配方法、装置、电子设备及可读存储介质
CN116880965B (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