CN114296936A - 基于Kubernetes集群的节点调度方法及装置、电子设备及介质 - Google Patents

基于Kubernetes集群的节点调度方法及装置、电子设备及介质 Download PDF

Info

Publication number
CN114296936A
CN114296936A CN202111658220.XA CN202111658220A CN114296936A CN 114296936 A CN114296936 A CN 114296936A CN 202111658220 A CN202111658220 A CN 202111658220A CN 114296936 A CN114296936 A CN 114296936A
Authority
CN
China
Prior art keywords
node
pod
schedulable
target node
scheduling
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
CN202111658220.XA
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 Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202111658220.XA priority Critical patent/CN114296936A/zh
Publication of CN114296936A publication Critical patent/CN114296936A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

本公开关于一种基于Kubernetes集群的节点调度方法及装置、电子设备及介质,涉及计算机技术领域。该方法包括:获取一个或多个可调度节点,计算一个或多个可调度节点的节点积分;从一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给目标节点;若目标节点启动pod失败、且重启次数大于预设次数,为pod重新分配新的目标节点。该方法能够在pod启动失败后,将pod调度到其他节点重试,从而可以实现快速部署服务。

Description

基于Kubernetes集群的节点调度方法及装置、电子设备及 介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于Kubernetes集群的节点调度方法及装置、电子设备及介质。
背景技术
容器技术已经成为一种被广泛认可的服务器资源共享方式,其可以在按需构建操作系统实例的过程中为系统管理员提供极大的灵活性。Kubernetes集群提出了一套全新的基于容器技术的分布式架构领先方案。其中,pod是在Kubernetes集群中运行部署应用或服务的最小单元,能够支持多个容器在一个pod中共享网络地址和文件系统。
目前,基于Kubernetes集群的编排调度方法中,在检测到pod启动失败后,会在同一节点一直尝试重启,导致在节点网络情况不佳或配置不当时,pod一直处于健康检查失败和重启状态,造成服务部署不成功。因此,现有的编排调度方案不具备在pod启动失败后,将pod调度到其他节点重试的策略,导致不能实现快速部署服务,需要人工排查错误解决。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种基于Kubernetes集群的节点调度方法及装置、电子设备及介质,能够在pod启动失败后,将pod调度到其他节点重试,从而可以实现快速部署服务。本公开的技术方案如下:
根据本公开实施例的一个方面,提供一种基于Kubernetes集群的节点调度方法,包括:获取一个或多个可调度节点,计算所述一个或多个可调度节点的节点积分;从所述一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给所述目标节点;若所述目标节点启动所述pod失败、且重启次数大于预设次数,为所述pod重新分配新的目标节点。
在本公开的一个实施例中,若所述目标节点启动所述pod失败、且重启次数大于预设次数,为所述pod重新分配新的目标节点,包括:若所述目标节点启动所述pod失败、且重启次数大于预设次数,获取所述pod的配置信息;在所述目标节点删除所述pod后,根据所述pod的配置信息拉起所述pod,为所述pod重新分配所述新的目标节点。
在本公开的一个实施例中,为所述pod重新分配新的目标节点,包括:计算所述一个或多个可调度节点的节点积分,以及基于减分策略减少所述目标节点的节点积分;从所述一个或多个可调度节点中,选取节点积分最高的可调度节点为所述新的目标节点,将所述pod分配给所述新的目标节点。
在本公开的一个实施例中,计算所述一个或多个可调度节点的节点积分,包括:基于第一调度策略,根据每个所述可调度节点的中央处理器CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个所述可调度节点的第一调度分数;基于第二调度策略,根据每个所述可调度节点的CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个所述可调度节点的第二调度分数;基于第三调度策略,根据每个所述可调度节点的已分配实例数和服务实例数,计算每个所述可调度节点的第三调度分数;按照各调度策略的策略权重,根据所述第一调度分数、所述第二调度分数和所述第三调度分数,计算每个所述可调度节点的节点积分。
在本公开的一个实施例中,所述方法还包括:若所述目标节点启动所述pod失败、且重启次数大于预设次数,将所述目标节点标记为所述pod的问题节点。
在本公开的一个实施例中,所述方法还包括:在为所述pod的同类pod分配节点的情况下,基于减分策略减少所述问题节点的节点积分,其中,所述同类pod的配置信息与所述pod的配置信息相同。
根据本公开实施例的另一方面,提供一种基于Kubernetes集群的节点调度装置,包括:计算模块,用于获取一个或多个可调度节点,计算所述一个或多个可调度节点的节点积分;分配模块,用于从所述一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给所述目标节点;以及,若所述目标节点启动所述pod失败、且重启次数大于预设次数,为所述pod重新分配新的目标节点。
在本公开的一个实施例中,所述分配模块还用于:若所述目标节点启动所述pod失败、且重启次数大于预设次数,获取所述pod的配置信息;在所述目标节点删除所述pod后,根据所述pod的配置信息拉起所述pod,为所述pod重新分配所述新的目标节点。
在本公开的一个实施例中,所述计算模块还用于:计算所述一个或多个可调度节点的节点积分,以及基于减分策略减少所述目标节点的节点积分;以及,所述分配模块还用于:从所述一个或多个可调度节点中,选取节点积分最高的可调度节点为所述新的目标节点,将所述pod分配给所述新的目标节点。
在本公开的一个实施例中,所述计算模块还用于:基于第一调度策略,根据每个所述可调度节点的中央处理器CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个所述可调度节点的第一调度分数;基于第二调度策略,根据每个所述可调度节点的CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个所述可调度节点的第二调度分数;基于第三调度策略,根据每个所述可调度节点的已分配实例数和服务实例数,计算每个所述可调度节点的第三调度分数;按照各调度策略的策略权重,根据所述第一调度分数、所述第二调度分数和所述第三调度分数,计算每个所述可调度节点的节点积分。
在本公开的一个实施例中,所述装置还包括标记模块,用于:若所述目标节点启动所述pod失败、且重启次数大于预设次数,将所述目标节点标记为所述pod的问题节点。
在本公开的一个实施例中,所述计算模块还用于:在为所述pod的同类pod分配节点的情况下,基于减分策略减少所述问题节点的节点积分,其中,所述同类pod的配置信息与所述pod的配置信息相同。
根据本公开实施例的又一方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述的基于Kubernetes集群的节点调度方法。
根据本公开实施例的又一方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述的基于Kubernetes集群的节点调度方法。
本公开的实施例提供的技术方案至少带来以下有益效果:计算所有可调度节点的节点积分,将pod分配给节点积分最高的节点,若该pod启动失败、且该节点重启该pod的次数大于预设次数,为该pod分配新的节点。所以,本公开实施例提供的方法设计了对于重启次数过多的pod的节点重分配策略,能够在pod部署过程中及时发现并终止在问题节点多次重复启动的pod,进而为该pod重新分配节点,从而可以实现快速部署服务。
进一步,可以基于减分策略减少问题节点的节点积分,即如果某节点启动pod失败、且重启次数大于预设次数,减少该节点的节点积分,从而可以在为pod重新分配节点的过程中,避免将pod重复分配到同一节点,能够将pod分配到最佳节点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的基于Kubernetes集群的节点调度方法的流程图;
图2是根据一示例性实施例示出的计算每个可调度节点的节点积分的流程图;
图3是根据又一示例性实施例示出的基于Kubernetes集群的节点调度方法的流程图;
图4是根据一示例性实施例示出的基于Kubernetes集群的节点调度装置框图;
图5是根据一示例性实施例示出的基于Kubernetes集群的节点调度的电子设备的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的是,本公开所涉及的用户信息,包括但不限于用户设备信息、用户个人信息等,均为经用户授权或者经过各方充分授权的信息。
本公开实施例提供的方法可以由任意类型的电子设备执行,例如服务器或者终端设备,或者服务器和终端设备的交互执行。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
图1是根据一示例性实施例示出的基于Kubernetes集群的节点调度方法的流程图。如图1所示,基于Kubernetes集群的节点调度方法包括以下步骤。
步骤S110,获取一个或多个可调度节点,计算一个或多个可调度节点的节点积分。
步骤S120,从一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给目标节点。
步骤S130,若目标节点启动pod失败、且重启次数大于预设次数,为pod重新分配新的目标节点。
本公开实施例提供的基于Kubernetes集群的节点调度方法中,计算所有可调度节点的节点积分,将pod分配给节点积分最高的节点,若该pod启动失败、且该节点重启该pod的次数大于预设次数,为该pod分配新的节点。所以,本公开实施例提供的方法设计了对于重启次数过多的pod的节点重分配策略,能够在pod部署过程中及时发现并终止在问题节点多次重复启动的pod,进而为该pod重新分配节点,从而可以实现快速部署服务。
pod是在Kubernetes集群中运行部署应用或服务的最小单元,能够支持多个容器在一个pod中共享网络地址和文件系统。为了将容器运行在最佳节点上,可以先计算所有可调度节点的节点积分,然后根据计算的节点积分选择最佳节点,为pod分配该最佳节点。
图2是根据一示例性实施例示出的计算每个可调度节点的节点积分的流程图。如图2所示,计算每个可调度节点的节点积分可以包括以下步骤。
步骤S201,基于第一调度策略,根据每个可调度节点的CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个可调度节点的第一调度分数。
第一调度策略可以用于对CPU资源和内存资源进行评分。具体的,根据可调度节点的CPU可用资源和运行容器所需要的CPU资源,计算该可调度节点的CPU资源分数为((CPU可用资源-运行容器所需要的CPU资源)*参数a)/CPU可用资源。根据可调度节点的内存可用资源和运行容器所需要的内存资源,计算该可调度节点的内存资源分数为((内存可用资源-运行容器所需要的内存资源)*参数a)/内存可用资源。根据计算得到的CPU资源分数和内存资源分数,得到该可调度节点的资源分数为(CPU资源分数+内存资源分数)/2,即第一调度分数。
例如,参数a取值为10,节点1的CPU可用资源为100,运行容器所需要的CPU资源为15,计算得到节点1的CPU资源分数为8.5分。节点1的内存可用资源为100,运行容器所需要的内存资源为20,计算得到节点1的内存资源分数为8分。最后计算得到节点1的第一调度分数为(8.5+8)/2=8.25分。
步骤S202,基于第二调度策略,根据每个可调度节点的CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个可调度节点的第二调度分数。
第二调度策略可以用于CPU资源和内存资源的平衡进行评分。具体的,根据可调度节点的CPU可用资源和运行容器所需要的CPU资源,计算该可调度节点的CPU资源的使用分数为(运行容器所需要的CPU资源/CPU可用资源)。根据可调度节点的内存可用资源和运行容器所需要的内存资源,计算该可调度节点的内存资源的使用分数为(运行容器所需要的内存资源/内存可用资源)。根据计算得到的CPU资源的使用分数和内存资源的使用分数,得到该可调度节点的资源均衡分数为(参数a-abs(CPU资源的使用分数-内存资源的使用分数)*参数a),即第二调度分数。
例如,参数a取值为10,节点1的CPU可用资源为100,运行容器所需要的CPU资源为15,计算得到节点1的CPU资源的使用分数为0.15分。节点1的内存可用资源为100,运行容器所需要的内存资源为20,计算得到节点1的内存资源的使用分数为0.2分。最后计算得到节点1的第二调度分数为10-abs(0.15-0.2)*10=9.5分。如果CPU资源和内存资源比较均衡,如均为0.5,那么得到资源均衡分数为10分。
步骤S203,基于第三调度策略,根据每个可调度节点的已分配实例数和服务实例数,计算每个可调度节点的第三调度分数。
第三调度策略可以用于多实例情况下的实例进行评分。具体的,根据可调度节点的已分配实例数和服务实例数,计算该可调度节点的第三调度分数为:参数a*(服务实例数-已分配实例数)/服务实例数。其中,服务实例数为一个服务可能存在的实例数。
例如,参数a取值为10,一个web服务可能存在5个实例数,节点1已经分配了2个实例,计算得到的节点1的第三调度分数为6分。
步骤S204,按照各调度策略的策略权重,根据第一调度分数、第二调度分数和第三调度分数,计算每个可调度节点的节点积分。
在计算可调度节点的节点积分的方法中,可以设置各个调度策略的策略权重,然后根据各调度策略的策略权重、第一调度分数、第二调度分数和第三调度分数,计算可调度节点的节点积分。接上述例子,设置各个调度策略的策略权重均为1,计算得到节点1的节点节分为23.75分。
需要注意的是,步骤S201、步骤S202和步骤S203的执行顺序可以根据实际情况调整,本公开实施例对此不作限定。
本公开实施例中,可以从内存资源、内存资源的平衡以及实例多个方面计算每个可调度节点的节点积分,使得计算得到的节点积分能够反应节点的状态,进而能够将pod分配给较佳的节点,提高pod的部署效率。
在计算得到每个可调度节点的节点积分后,可以选取节点节分最高的可调度节点为目标节点,将pod分配给该目标节点。若该目标节点启动pod失败,并且该目标节点重启pod的次数大于预设次数,可以为pod重新分配新的目标节点。
在示例性实施例中,若目标节点启动pod失败、且重启次数大于预设次数,为pod重新分配新的目标节点,可以包括:若目标节点启动pod失败、且重启次数大于预设次数,获取pod的配置信息;在目标节点删除pod后,根据pod的配置信息拉起pod,为pod重新分配新的目标节点。
如果目标节点启动pod失败,且该目标节点重启该pod的次数超过预设次数,该目标节点可以标记该pod,此时该pod进入预删除队列。然后,获取到该pod的配置信息,这样该目标节点可以删除该pod。其中,pod的配置信息可以为pod的yaml配置,即pod的模板,pod为通过该模板实例化得到的。接着,根据该pod的配置信息重新拉起该pod,进而可以为该pod重新分配新的目标节点。
在示例性实施例中,为pod重新分配新的目标节点,可以包括:计算一个或多个可调度节点的节点积分,以及基于减分策略减少目标节点的节点积分;从一个或多个可调度节点中,选取节点积分最高的可调度节点为新的目标节点,将pod分配给新的目标节点。
具体的,按照上文描述的节点积分的计算方法,基于第一调度策略、第二调度策略、第三调度策略和各调度策略的策略权重,重新计算每个可调度节点的节点积分。还有,为了避免再次将该pod分配给目标节点,可以基于减分策略减少该目标节点的节点积分。其中,减分策略可以根据节点启动pod失败的具体情况设置。例如,如果节点1启动在近期内重启pod1失败,则节点1的节点积分减去2分;如果节点1启动在近期内重启pod1和pod2失败,则节点1的节点积分减去5分,其中,pod1和pod2为同一类型。减分策略也可以根据其他情况设置,如当前网络情况、当前节点的工作状态。
在计算得到所有可调度节点的节点积分后,可以选择节点积分最高的可调度节点为新的目标节点,然后将pod分配给新的目标节点。如果该新的目标节点启动pod失败、且重启次数大于预设次数,那么可以继续为pod重新分配新的目标节点,直到pod启动成功。或者说,如果多个节点启动pod失败,说明该pod或者该pod的配置信息可能存在问题,此种情况下,可以将多个节点启动pod失败的情况上报,以便及时发现问题并解决。
可见,本公开实施例提供的基于Kubernetes集群的节点调度方法中,可以基于减分策略减少问题节点的节点积分,即如果某节点启动pod失败、且重启次数大于预设次数,减少该节点的节点积分,从而可以在为pod重新分配节点的过程中,避免将pod重复分配到同一节点,能够将pod分配到最佳节点。
图3是根据又一示例性实施例示出的基于Kubernetes集群的节点调度方法的流程图。如图3所示,基于Kubernetes集群的节点调度方法包括以下步骤。
步骤S301,获取一个或多个可调度节点;
步骤S302,按照步骤S201至步骤S204,计算每个可调度节点的节点积分;
步骤S303,从一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给目标节点;
步骤S304,若目标节点启动pod失败、且重启次数大于预设次数,获取pod的配置信息;
步骤S305,在目标节点删除pod后,根据pod的配置信息拉起pod;
步骤S306,按照步骤S201至步骤S204重新计算每个可调度节点的节点节分,以及基于减分策略减少目标节点的节点积分;
步骤S307,从一个或多个可调度节点中,选取节点积分最高的可调度节点为新的目标节点,将pod分配给新的目标节点。
需要注意的是,如果该新的目标节点启动pod失败、且重启次数大于预设次数,那么可以继续为pod重新分配新的目标节点,直到pod启动成功。或者说,如果多个节点启动pod失败,说明该pod或者该pod的配置信息可能存在问题,此种情况下,可以将多个节点启动pod失败的情况上报,以便及时发现问题并解决。
在示例性实施例中,基于Kubernetes集群的节点调度方法还可以包括:若目标节点启动pod失败、且重启次数大于预设次数,将目标节点标记为pod的问题节点。以及,在为pod的同类pod分配节点的情况下,基于减分策略减少目标节点的节点积分,其中,同类pod的配置信息与pod的配置信息相同。
对于配置信息相同的多个pod,可以认为这些pod为同一类型的,如pod1的配置信息与pod2的配置信息相同,即pod1和pod2是通过同一个模板实例化的,那么pod1为pod2的同类pod,当然,pod2也为pod1的同类pod。如果某目标节点启动pod失败、且重启次数大于预设次数,那么可以将该目标节点标记为该pod的问题节点。这样在为该pod的同类pod分配节点的时候,可以基于减分策略减少问题节点的节点积分,即减少该目标节点的节点积分,避免将同类pod分配给目标节点,从而可以将同类pod分配到最佳节点。例如,pod2为pod1的同类pod,如果节点1启动pod1失败,那么节点1启动pod2失败的可能性比较大,因此在为pod2分配节点时,可以减少节点1的节点积分,进而可以避开将pod2分配给节点1。
图4是根据一示例性实施例示出的基于Kubernetes集群的节点调度装置框图。参照图4,该装置可以包括:计算模块410、分配模块420和标记模块430。
该计算模块410可用于:获取一个或多个可调度节点,计算一个或多个可调度节点的节点积分。
该分配模块420可用于:从一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给目标节点;以及,若目标节点启动pod失败、且重启次数大于预设次数,为pod重新分配新的目标节点。
在示例性实施例中,该分配模块420还可用于:若目标节点启动pod失败、且重启次数大于预设次数,获取pod的配置信息;在目标节点删除pod后,根据pod的配置信息拉起pod,为pod重新分配新的目标节点。
在示例性实施例中,该计算模块410还可用于:计算一个或多个可调度节点的节点积分,以及基于减分策略减少目标节点的节点积分。以及,该分配模块420还可用于:从一个或多个可调度节点中,选取节点积分最高的可调度节点为新的目标节点,将pod分配给新的目标节点。
在示例性实施例中,该计算模块410还可用于:基于第一调度策略,根据每个可调度节点的中央处理器CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个可调度节点的第一调度分数;基于第二调度策略,根据每个可调度节点的CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个可调度节点的第二调度分数;基于第三调度策略,根据每个可调度节点的已分配实例数和服务实例数,计算每个可调度节点的第三调度分数;按照各调度策略的策略权重,根据第一调度分数、第二调度分数和第三调度分数,计算每个可调度节点的节点积分。
在示例性实施例中,标记模块430可用于:若目标节点启动pod失败、且重启次数大于预设次数,将目标节点标记为pod的问题节点。
在示例性实施例中,该计算模块410还可用于:在为pod的同类pod分配节点的情况下,基于减分策略减少问题节点的节点积分。其中,同类pod的配置信息与pod的配置信息相同。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的基于Kubernetes集群的节点调度的电子设备的结构框图。需要说明的是,图示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
下面参照图5来描述根据本发明的这种实施方式的电子设备500。图5显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:上述至少一个处理单元510、上述至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图1中所示的步骤S110,获取一个或多个可调度节点,计算一个或多个可调度节点的节点积分;步骤S120,从一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给目标节点;步骤S130,若目标节点启动pod失败、且重启次数大于预设次数,为pod重新分配新的目标节点。
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(ROM)5203。
存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备500也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。并且,电子设备500还可以通过网络适配器540与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器540通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种基于Kubernetes集群的节点调度方法,其特征在于,包括:
获取一个或多个可调度节点,计算所述一个或多个可调度节点的节点积分;
从所述一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给所述目标节点;
若所述目标节点启动所述pod失败、且重启次数大于预设次数,为所述pod重新分配新的目标节点。
2.根据权利要求1所述的方法,其特征在于,若所述目标节点启动所述pod失败、且重启次数大于预设次数,为所述pod重新分配新的目标节点,包括:
若所述目标节点启动所述pod失败、且重启次数大于预设次数,获取所述pod的配置信息;
在所述目标节点删除所述pod后,根据所述pod的配置信息拉起所述pod,为所述pod重新分配所述新的目标节点。
3.根据权利要求1所述的方法,其特征在于,为所述pod重新分配新的目标节点,包括:
计算所述一个或多个可调度节点的节点积分,以及基于减分策略减少所述目标节点的节点积分;
从所述一个或多个可调度节点中,选取节点积分最高的可调度节点为所述新的目标节点,将所述pod分配给所述新的目标节点。
4.根据权利要求3所述的方法,其特征在于,计算所述一个或多个可调度节点的节点积分,包括:
基于第一调度策略,根据每个所述可调度节点的中央处理器CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个所述可调度节点的第一调度分数;
基于第二调度策略,根据每个所述可调度节点的CPU可用资源、运行容器所需要的CPU资源、内存可用资源和运行容器所需要的内存资源,计算每个所述可调度节点的第二调度分数;
基于第三调度策略,根据每个所述可调度节点的已分配实例数和服务实例数,计算每个所述可调度节点的第三调度分数;
按照各调度策略的策略权重,根据所述第一调度分数、所述第二调度分数和所述第三调度分数,计算每个所述可调度节点的节点积分。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标节点启动所述pod失败、且重启次数大于预设次数,将所述目标节点标记为所述pod的问题节点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在为所述pod的同类pod分配节点的情况下,基于减分策略减少所述问题节点的节点积分,其中,所述同类pod的配置信息与所述pod的配置信息相同。
7.一种基于Kubernetes集群的节点调度装置,其特征在于,包括:
计算模块,用于获取一个或多个可调度节点,计算所述一个或多个可调度节点的节点积分;
分配模块,用于从所述一个或多个可调度节点中,选取节点积分最高的可调度节点为目标节点,将pod分配给所述目标节点;以及,若所述目标节点启动所述pod失败、且重启次数大于预设次数,为所述pod重新分配新的目标节点。
8.根据权利要求7所述的装置,其特征在于,所述分配模块还用于:
若所述目标节点启动所述pod失败、且重启次数大于预设次数,获取所述pod的配置信息;
在所述目标节点删除所述pod后,根据所述pod的配置信息拉起所述pod,为所述pod重新分配所述新的目标节点。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的方法。
CN202111658220.XA 2021-12-30 2021-12-30 基于Kubernetes集群的节点调度方法及装置、电子设备及介质 Pending CN114296936A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111658220.XA CN114296936A (zh) 2021-12-30 2021-12-30 基于Kubernetes集群的节点调度方法及装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111658220.XA CN114296936A (zh) 2021-12-30 2021-12-30 基于Kubernetes集群的节点调度方法及装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN114296936A true CN114296936A (zh) 2022-04-08

Family

ID=80973221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111658220.XA Pending CN114296936A (zh) 2021-12-30 2021-12-30 基于Kubernetes集群的节点调度方法及装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN114296936A (zh)

Similar Documents

Publication Publication Date Title
US11714686B2 (en) Resource oversubscription based on utilization patterns in computing systems
US9852035B2 (en) High availability dynamic restart priority calculator
US10511658B1 (en) Computing resource transition notification and pending state
US8301746B2 (en) Method and system for abstracting non-functional requirements based deployment of virtual machines
CN113886089B (zh) 一种任务处理方法、装置、系统、设备及介质
US9110729B2 (en) Host system admission control
WO2023273238A1 (zh) 图形处理资源调配方法、装置、设备及存储介质
EP4060496A2 (en) Method, apparatus, device and storage medium for running inference service platform
CN110460647B (zh) 网络节点的调度方法、装置、电子设备和存储介质
CN116185623A (zh) 任务分配方法、装置、电子设备及存储介质
CN113204425B (zh) 供进程管理内部线程的方法、装置、电子设备及存储介质
US20130007279A1 (en) Dynamically tuning server placement
CN106856441A (zh) Nfvo中的vim选择方法和装置
CN114598665A (zh) 资源调度方法、装置和计算机可读存储介质及电子设备
CN114371914A (zh) 容器ip地址配置方法、装置、存储介质及电子设备
CN114489954A (zh) 基于虚拟化平台的租户创建方法、租户访问方法及设备
JP2021131897A (ja) スケジューリング方法、装置、設備、記憶設備、及びプログラム
CN111124291A (zh) 分布式存储系统的数据存储处理方法、装置、电子设备
US11017417B1 (en) Using incentives to manage computing resources
US20230229477A1 (en) Upgrade of cell sites with reduced downtime in telco node cluster running containerized applications
CN114296936A (zh) 基于Kubernetes集群的节点调度方法及装置、电子设备及介质
CN116032614A (zh) 容器网络微隔离方法、装置、设备和介质
CN114968776A (zh) 一种应用程序的检测方法和装置
CN115686813A (zh) 一种资源调度方法、装置、电子设备和存储介质
CN112148497A (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