基于Kubernetes集群的pod调度方法及装置制造方法及图纸

技术编号:39300122 阅读:6 留言:0更新日期:2023-11-12 15:51
本申请涉及云计算领域,提供一种基于Kubernetes集群的pod调度方法、装置、电子设备以及计算机程序产品。所述方法包括:在集群中筛选出应用系统各服务的潜在可调度节点;根据潜在可调度节点的空闲CPU总量与可分配CPU总量的比值、潜在可调度节点的空闲内存总量与可分配内存总量的比值和潜在可调度节点对应服务的同节点相互调用频率与总体相互调用频率的比值的加权总和,计算潜在可调度节点的评分;选取评分最高的潜在可调度节点作为潜在可调度节点对应服务的调度节点;将潜在可调度节点对应服务的pod调度至调度节点上。本申请实施例提供的调度方法可以在不影响资源利用率的前提下,减少服务间跨节点传输耗时。减少服务间跨节点传输耗时。减少服务间跨节点传输耗时。

【技术实现步骤摘要】
基于Kubernetes集群的pod调度方法及装置


[0001]本申请涉及云计算
,尤其涉及一种基于Kubernetes集群的pod调度方法、装置、电子设备以及计算机程序产品。

技术介绍

[0002]Kubernetes是用于管理多主机集群上容器化应用的开源平台,它是由Google开发的一款容器编排引擎,可提供容器化应用的自动化部署,扩缩和管理功能。Kubernetes的调度是指将pod调度至集群中合适的node节点,并由相应节点上的kubelet组件运行pod。其中kube

scheduler是Kubernetes集群中默认的调度器,kube

scheduler会按照一定方法为每个pod选取一个最优的node节点运行此pod。
[0003]对于现有的Kubernetes调度方法来说,更多的是根据Kubernetses集群内node节点的CPU、内存、存储、镜像等资源信息以及pod运行的资源需求信息进行调度,此调度方法虽然可提升Kubernetes集群的资源利用率,但上述调度方法的衡量因素局限于Kubernetes集群自身,对于集群上承载的应用系统的网络需求则缺乏考虑。特别是在如今微服务架构已被广泛采纳和应用的情况下,应用系统中各服务之间存在频繁的调用,若相互之间存在频繁调用的服务被调度至Kubernetes集群的不同node节点上,则服务间的每次调用均会产生跨节点传输的网络开销。相较于同一个node节点内的网络传输,跨节点传输耗时更长。

技术实现思路
r/>[0004]本申请实施例提供一种基于Kubernetes集群的pod调度方法、装置、设备及计算机程序产品,用以解决应用系统中各服务之间跨节点调用频繁导致的跨节点传输耗时长的技术问题。
[0005]第一方面,本申请实施例提供一种基于Kubernetes集群的pod调度方法,包括:
[0006]在Kubernetes集群中筛选出应用系统各服务的潜在可调度节点;
[0007]根据所述潜在可调度节点的空闲CPU总量与可分配CPU总量的比值、所述潜在可调度节点的空闲内存总量与可分配内存总量的比值和所述潜在可调度节点对应服务的同节点相互调用频率与总体相互调用频率的比值的加权总和,计算所述潜在可调度节点的评分,所述潜在可调度节点对应服务的同节点相互调用频率为所述潜在可调度节点对应服务与所述应用系统中其他服务在所述潜在可调度节点上的相互调用频率之和,所述总体相互调用频率为所述潜在可调度节点对应服务与所述应用系统中其他服务的相互调用频率之和,所述相互调用频率为两两服务之间相互调用的次数之和;
[0008]选取评分最高的所述潜在可调度节点作为所述潜在可调度节点对应服务的调度节点;
[0009]将所述潜在可调度节点对应服务的pod调度至所述调度节点上。
[0010]在一个实施例中,所述在Kubernetes集群中筛选出应用系统各服务的潜在可调度节点之前,还包括:
[0011]根据所述各服务之间相互调用频率和所述各服务的资源需求评分,设置服务排队序列,所述资源需求评分为单一服务所请求的CPU总量与所述Kubernetes集群内的CPU总量的比值和所述单一服务所请求的内存总量与所述Kubernetes集群内的内存总量的比值之和。
[0012]在一个实施例中,所述根据所述各服务之间相互调用频率和所述各服务的资源需求评分,设置服务排队序列,包括:
[0013]步骤1:将所述相互调用频率由高到低排序,得到调用频率序列;
[0014]步骤2:选取所述调用频率序列中最高的相互调用频率对应的两个服务,设定为第一服务和第二服务,将所述第一服务和所述第二服务加入所述服务排队序列;
[0015]步骤3:若所述第一服务的资源需求评分小于等于所述第二服务的资源需求评分,则按照第一服务至第二服务的顺序排序;
[0016]步骤4:在所述调用频率序列中剔除与所述第一服务和所述第二服务相关的所述相互调用频率,得到新的调用频率序列,再返回执行步骤2,直至所述应用系统各服务均加入所述服务排队序列并完成排序。
[0017]在一个实施例中,所述在Kubernetes集群中筛选出应用系统各服务的潜在可调度节点,包括:
[0018]按照所述服务排队序列中服务的排序,利用预筛选算法在所述Kubernetes集群中筛选出所述应用系统各服务的潜在可调度节点。
[0019]在一个实施例中,所述根据所述潜在可调度节点的空闲CPU总量与可分配CPU总量的比值、所述潜在可调度节点的空闲内存总量与可分配内存总量的比值和所述潜在可调度节点对应服务的同节点相互调用频率与总体相互调用频率的比值的加权总和,计算所述潜在可调度节点的评分,包括:
[0020]读取所述潜在可调度节点的可分配CPU总量和可分配内存总量,以及所述潜在可调度节点对应服务在所述潜在可调度节点上所请求的CPU总量和所请求的内存总量,根据以下公式计算得到所述潜在可调度节点的评分:
[0021][0022]其中,Score
a
为潜在可调度节点a的评分,allocable.MilliCPU
a
为潜在可调度节点a的可分配CPU总量,allocable.Memory
a
为潜在可调度节点a的可分配内存总量,requested.MilliCPU
i
为潜在可调度节点a对应服务i在潜在可调度节点a上所请求的CPU总量,requested.Memory
i
为潜在可调度节点a对应服务i在潜在可调度节点a上所请求的内存
总量,X
i
为T时间段内服务i与应用系统中其他服务的相互调用频率之和,即X
ij
为T时间段内,服务i与应用系统中其他服务在潜在可调度节点a上的相互调用频率之和,所述T时间段包括至少一个业务周期,node
a
为潜在可调度节点a上的服务集合,α、β、γ均为常数且α+β+γ=1。
[0023]在一个实施例中,所述根据所述各服务之间相互调用频率和所述各服务的资源需求评分,设置服务排队序列之前,包括:
[0024]利用Istio的sidecar采集所述两两服务之间的调用信息,并将所述调用信息上传至所述Istio;
[0025]根据所述调用信息,利用所述Istio计算并记录所述两两服务之间在T时间段内的相互调用频率,得到所述各服务的相互调用频率,所述T时间段包括至少一个业务周期。
[0026]在一个实施例中,所述将所述潜在可调度节点对应服务的pod调度至所述调度节点上,包括:
[0027]在所述调度节点新建所述潜在可调度节点对应服务的pod,启动新建的所述潜在可调度节点对应服务的pod,销毁新建前所述潜在可调度节点对应服务的pod副本,完成所述潜在可调度节点对应服务的pod的调度。
[0028]第二方面,本申请实施例提供一种基于Kuberne本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于Kubernetes集群的pod调度方法,其特征在于,包括:在Kubernetes集群中筛选出应用系统各服务的潜在可调度节点;根据所述潜在可调度节点的空闲CPU总量与可分配CPU总量的比值、所述潜在可调度节点的空闲内存总量与可分配内存总量的比值和所述潜在可调度节点对应服务的同节点相互调用频率与总体相互调用频率的比值的加权总和,计算所述潜在可调度节点的评分;所述潜在可调度节点对应服务的同节点相互调用频率为所述潜在可调度节点对应服务与所述应用系统中其他服务在所述潜在可调度节点上的相互调用频率之和,所述总体相互调用频率为所述潜在可调度节点对应服务与所述应用系统中其他服务的相互调用频率之和,所述相互调用频率为两两服务之间相互调用的次数之和;选取评分最高的所述潜在可调度节点作为所述潜在可调度节点对应服务的调度节点;将所述潜在可调度节点对应服务的pod调度至所述调度节点上。2.根据权利要求1所述的基于Kubernetes集群的pod调度方法,其特征在于,所述在Kubernetes集群中筛选出应用系统各服务的潜在可调度节点之前,还包括:根据所述各服务之间相互调用频率和所述各服务的资源需求评分,设置服务排队序列,所述资源需求评分为单一服务所请求的CPU总量与所述Kubernetes集群内的CPU总量的比值和所述单一服务所请求的内存总量与所述Kubernetes集群内的内存总量的比值之和。3.根据权利要求2所述的基于Kubernetes集群的pod调度方法,其特征在于,所述根据所述各服务之间相互调用频率和所述各服务的资源需求评分,设置服务排队序列,包括:步骤1:将所述相互调用频率由高到低排序,得到调用频率序列;步骤2:选取所述调用频率序列中最高的相互调用频率对应的两个服务,设定为第一服务和第二服务,将所述第一服务和所述第二服务加入所述服务排队序列;步骤3:若所述第一服务的资源需求评分小于等于所述第二服务的资源需求评分,则按照第一服务至第二服务的顺序排序;步骤4:在所述调用频率序列中剔除与所述第一服务和所述第二服务相关的所述相互调用频率,得到新的调用频率序列,再返回执行步骤2,直至所述应用系统各服务均加入所述服务排队序列并完成排序。4.根据权利要求3所述的基于Kubernetes集群的pod调度方法,其特征在于,所述在Kubernetes集群中筛选出应用系统各服务的潜在可调度节点,包括:按照所述服务排队序列中服务的排序,利用预筛选算法在所述Kubernetes集群中筛选出所述应用系统各服务的潜在可调度节点。5.根据权利要求4所述的基于Kubernetes集群的pod调度方法,其特征在于,所述根据所述潜在可调度节点的空闲CPU总量与可分配CPU总量的比值、所述潜在可调度节点的空闲内存总量与可分配内存总量的比值和所述潜在可调度节点对应服务的同节点相互调用频率与总体相互调用频率的比值的加权总和,计算所述潜在可调度节点的评分,包括:读取所述潜在可调度节点的可分配CPU总量和可分配内存总量,以及所述潜在可调度节点对应服务在所述潜在可调度节点上所请求的CPU总量和所请求的内存总量,根据以下公式计算得到所述潜在...

【专利技术属性】
技术研发人员:刘伟尚进夏杭康航
申请(专利权)人:中移系统集成有限公司中国移动通信集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1