CN117724801A - 容器驱逐方法、容器驱逐设备以及可读存储介质 - Google Patents

容器驱逐方法、容器驱逐设备以及可读存储介质 Download PDF

Info

Publication number
CN117724801A
CN117724801A CN202311582391.8A CN202311582391A CN117724801A CN 117724801 A CN117724801 A CN 117724801A CN 202311582391 A CN202311582391 A CN 202311582391A CN 117724801 A CN117724801 A CN 117724801A
Authority
CN
China
Prior art keywords
container
evicted
node
eviction
host
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
CN202311582391.8A
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 Merchants Finance Technology Co Ltd
Original Assignee
China Merchants Finance 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 China Merchants Finance Technology Co Ltd filed Critical China Merchants Finance Technology Co Ltd
Priority to CN202311582391.8A priority Critical patent/CN117724801A/zh
Publication of CN117724801A publication Critical patent/CN117724801A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及容器管理技术领域,尤其涉及一种容器驱逐方法、容器驱逐设备以及可读存储介质。容器驱逐方法通过获取主机集群中,各个主机节点的负载信息;基于所述负载信息和预设驱逐阈值,将所述各个主机节点划分为待驱逐节点和非驱逐节点;获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数在所述待驱逐节点中选定待驱逐容器;若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作。可以根据负载情况和容器权重配置参数,有选择地驱逐合适的容器,减少驱逐次数,提高业务运行的稳定性,并减少CPU、网络和GPU的资源抢占现象的发生。

Description

容器驱逐方法、容器驱逐设备以及可读存储介质
技术领域
本发明涉及容器管理技术领域,尤其涉及一种容器驱逐方法、容器驱逐设备以及可读存储介质。
背景技术
K8S(Kubernetes,基于容器化应用的开源容器编排工具),是一个可移植的、可扩展的开源平台,用于管理多个主机上容器化的应用。K8S提供不可压缩资源的驱逐方案。在K8S提供的驱逐方案中,通常优先驱逐使用量最高的应用或者是QoS(Quality of Service,服务等级)排名较低的应用。
然而,由于该驱逐方案未考虑到被驱逐应用的业务属性,因而可能会导致重要应用被驱逐,或频繁驱逐应用的现象,进而使业务及平台的稳定性受到影响。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种容器驱逐方法,旨在解决K8S提供的驱逐方案可能会导致重要应用被驱逐,或频繁驱逐应用的问题。
为实现上述目的,本发明提供的一种容器驱逐方法,所述容器驱逐方法包括以下步骤:
获取主机集群中,各个主机节点的负载信息;
基于所述负载信息和预设驱逐阈值,将所述各个主机节点划分为待驱逐节点和非驱逐节点;
获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数在所述待驱逐节点中选定待驱逐容器;
若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作。
可选地,所述负载信息包括CPU使用率、内存使用率和系统负载,所述预设驱逐阈值包括预设CPU负载阈值、预设内存负载阈值和预设系统负载阈值,所述基于所述负载信息和预设驱逐阈值,将所述各个主机节点划分为待驱逐节点和非驱逐节点的步骤包括:
当所述主机节点的CPU使用率大于所述主机节点的预设CPU负载阈值时,判定所述主机节点为待驱逐节点;和/或,
当所述主机节点的内存使用率大于所述主机节点的预设内存负载阈值时,判定所述主机节点为待驱逐节点;和/或,
当所述主机节点的系统负载大于所述主机节点的预设系统负载阈值时,判定所述主机节点为待驱逐节点。
可选地,所述获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数,确定所述待驱逐节点的待驱逐容器的步骤包括:
根据所述容器权重配置参数,对所述待驱逐节点的各个容器进行保障等级划分,确定所述各个容器对应的保障等级;
基于所述各个容器对应的保障等级,确定所述待驱逐容器。
可选地,所述基于所述各个容器对应的保障等级,确定所述待驱逐容器的步骤包括:
当所述待驱逐节点存在无保障级别容器时,将所述无保障级别容器作为所述待驱逐容器;
当所述待驱逐节点无所述无保障级别容器时,将尽量保障级别容器作为所述待驱逐容器;
当所述待驱逐节点无所述无保障级别容器和所述尽量保障级别容器时,将优先保障级别容器作为所述待驱逐容器;
当所述待驱逐节点全为严格保障级别容器时,将所述严格保障级别容器作为所述待驱逐容器。
可选地,所述若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作的步骤之前,还包括:
确定所述待驱逐容器可运行于所述非驱逐节点;
若否,于所述非驱逐节点创建所述待驱逐容器的镜像,获得所述可运行所述待驱逐容器的所述非驱逐节点;
若是,执行所述对所述待驱逐容器执行驱逐操作的步骤。
可选地,所述获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数,确定所述待驱逐节点的待驱逐容器的步骤包括:
基于所述负载信息的容器固定指标,对所述待驱逐节点的各个容器进行排序,生成第一排序信息;
基于容器权重配置参数,对所述各个容器进行保障等级排序,生成第二排序信息;
基于所述负载信息的容器弹性指标,对所述各个容器进行排序,生成第三排序信息;
根据所述第一排序信息、所述第二排序信息以及所述第三排序信息,确定所述待驱逐容器。
可选地,所述根据所述第一排序信息、所述第二排序信息以及所述第三排序信息,确定所述待驱逐容器的步骤包括:
根据所述第一排序信息确定第一待驱逐容器集;
基于所述第二排序信息,于所述第一待驱逐容器集中,确定第二待驱逐容器集;
基于所述第三排序信息,于所述第二待驱逐容器集中,确定所述待驱逐容器。
可选地,所述获取主机集群中,各个主机节点的负载信息的步骤包括:
向预设于所述各个主机节点的代理组件发送负载信息获取指令;
接收所述代理组件返回的所述各个主机节点的负载信息,所述代理组件基于所述负载信息获取指令调用守护进程,获取容器监控所采集的负载信息。
此外,为实现上述目的,本发明还提供一种容器驱逐设备,所述容器驱逐设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的容器驱逐程序,所述容器驱逐程序被所述处理器执行时实现如上所述的容器驱逐方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有容器驱逐程序,所述容器驱逐程序被处理器执行时实现如上所述的容器驱逐方法的步骤。
本发明实施例提供的容器驱逐方法、容器驱逐设备以及可读存储介质,由于通过获取主机节点的负载信息,可以了解各个主机节点的负载情况。通过预设的驱逐阈值和获取的负载信息,可以将主机节点划分为负载较高的待驱逐节点和负载较低的非驱逐节点。这样能够优先选择待驱逐节点上的容器进行驱逐,减少驱逐次数。通过获取待驱逐节点的容器权重配置参数,选择对系统影响较小的容器作为待驱逐容器,从而确保业务运行的稳定性。如果待驱逐容器可以运行于非驱逐节点,并且非驱逐节点有足够的资源来承载该容器,则触发驱逐进程并将容器从待驱逐节点迁移到非驱逐节点。这样可以减少资源抢占现象的发生,避免资源争夺导致的性能下降和业务中断。因此,可以根据负载情况和容器权重配置参数,有选择地驱逐合适的容器,减少驱逐次数,提高业务运行的稳定性,并减少CPU、网络和GPU的资源抢占现象的发生。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例涉及的容器驱逐设备的硬件运行环境的架构示意图;
图2为本发明容器驱逐方法的第一实施例的流程示意图;
图3为本发明容器驱逐方法的第二实施例的流程示意图;
图4为本发明容器驱逐方法的第三实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图作进一步说明。
具体实施方式
本申请容器驱逐方法,通过获取主机集群中,各个主机节点的负载信息;基于所述负载信息和预设驱逐阈值,将所述各个主机节点划分为待驱逐节点和非驱逐节点;获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数在所述待驱逐节点中选定待驱逐容器;若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作。可以根据负载情况和容器权重配置参数,有选择地驱逐合适的容器,减少驱逐次数,提高业务运行的稳定性,并减少CPU、网络和GPU的资源抢占现象的发生。
为了更好地理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整地传达给本领域的技术人员。
作为一种实现方案,图1为本发明实施例方案涉及的容器驱逐设备的硬件运行环境的架构示意图。
如图1所示,该容器驱逐设备可以包括:处理器101,例如中央处理器(CentralProcessing Unit,CPU),存储器102,通信总线103。其中,存储器102可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器102可选的还可以是独立于前述处理器101的存储装置。通信总线103用于实现这些组件之间的连接通信。
本领域技术人员可以理解,图1中示出的结构并不构成对容器驱逐设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器102中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及容器驱逐程序。
在图1所示的容器驱逐设备中,处理器101、存储器102可以设置在容器驱逐设备中,所述容器驱逐设备通过处理器101调用存储器102中存储的容器驱逐程序,并执行以下操作:
获取主机集群中,各个主机节点的负载信息;
基于所述负载信息和预设驱逐阈值,将所述各个主机节点划分为待驱逐节点和非驱逐节点;
获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数在所述待驱逐节点中选定待驱逐容器;
若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作。
在一实施例中,处理器101可以用于调用存储器102中存储的容器驱逐程序,并执行以下操作:
当所述主机节点的CPU使用率大于所述主机节点的预设CPU负载阈值时,判定所述主机节点为待驱逐节点;和/或,
当所述主机节点的内存使用率大于所述主机节点的预设内存负载阈值时,判定所述主机节点为待驱逐节点;和/或,
当所述主机节点的系统负载大于所述主机节点的预设系统负载阈值时,判定所述主机节点为待驱逐节点。
在一实施例中,处理器101可以用于调用存储器102中存储的容器驱逐程序,并执行以下操作:
根据所述容器权重配置参数,对所述待驱逐节点的各个容器进行保障等级划分,确定所述各个容器对应的保障等级;
基于所述各个容器对应的保障等级,确定所述待驱逐容器。
在一实施例中,处理器101可以用于调用存储器102中存储的容器驱逐程序,并执行以下操作:
当所述待驱逐节点存在无保障级别容器时,将所述无保障级别容器作为所述待驱逐容器;
当所述待驱逐节点无所述无保障级别容器时,将尽量保障级别容器作为所述待驱逐容器;
当所述待驱逐节点无所述无保障级别容器和所述尽量保障级别容器时,将优先保障级别容器作为所述待驱逐容器;
当所述待驱逐节点全为严格保障级别容器时,将所述严格保障级别容器作为所述待驱逐容器。
在一实施例中,处理器101可以用于调用存储器102中存储的容器驱逐程序,并执行以下操作:
确定所述待驱逐容器可运行于所述非驱逐节点;
若否,于所述非驱逐节点创建所述待驱逐容器的镜像,获得所述可运行所述待驱逐容器的所述非驱逐节点;
若是,执行所述对所述待驱逐容器执行驱逐操作的步骤。
在一实施例中,处理器101可以用于调用存储器102中存储的容器驱逐程序,并执行以下操作:
基于所述负载信息的容器固定指标,对所述待驱逐节点的各个容器进行排序,生成第一排序信息;
基于容器权重配置参数,对所述各个容器进行保障等级排序,生成第二排序信息;
基于所述负载信息的容器弹性指标,对所述各个容器进行排序,生成第三排序信息;
根据所述第一排序信息、所述第二排序信息以及所述第三排序信息,确定所述待驱逐容器。
在一实施例中,处理器101可以用于调用存储器102中存储的容器驱逐程序,并执行以下操作:
根据所述第一排序信息确定第一待驱逐容器集;
基于所述第二排序信息,于所述第一待驱逐容器集中,确定第二待驱逐容器集;
基于所述第三排序信息,于所述第二待驱逐容器集中,确定所述待驱逐容器。
在一实施例中,处理器101可以用于调用存储器102中存储的容器驱逐程序,并执行以下操作:
向预设于所述各个主机节点的代理组件发送负载信息获取指令;
接收所述代理组件返回的所述各个主机节点的负载信息,所述代理组件基于所述负载信息获取指令调用守护进程,获取容器监控所采集的负载信息。
基于上述容器驱逐设备的硬件架构,提出本发明容器驱逐方法的实施例。
参照图2,在第一实施例中,所述容器驱逐方法包括以下步骤:
步骤S100:获取主机集群中,各个主机节点的负载信息。
在本实施例中,主机集群包括多个主机节点,在主机节点上配置有代理组件,在代理组件启动的时候,主机节点上的容器监控也会自启动。其中,这里的代理组件指的是K8S在各个主机节点上配置的代理组件。需要说明的是,主机节点上的容器监控,用于对主机节点上的资源及容器进行实时监控,采集负载信息。负载信息包括但不限于CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况等。
可选地,主机集群可以通过K8S,对各个主机节点进行管理。通过向预设于所述各个主机节点的代理组件发送负载信息获取指令;然后,接收所述代理组件返回的所述各个主机节点的负载信息,所述代理组件基于所述负载信息获取指令调用守护进程,获取容器监控所采集的负载信息。进而获取主机集群中,各个主机节点的负载信息。在此处,负载信息包括节点指标以及容器指标。节点指标包括但不限于CPU配额、CPU使用率、内存配额、内存使用率、系统负载、磁盘读写速率、磁盘配额、磁盘使用率、网络出入速率。容器指标包括但不限于CPU配额、CPU使用率、内存配额、内存使用率、网络出入速率、磁盘读写速率、磁盘使用量。
这样做的目的在于,通过实时监控容器负载信息,提供对主机节点和容器的管理和调度支持。
步骤S200:基于所述负载信息和预设驱逐阈值,将所述各个主机节点划分为待驱逐节点和非驱逐节点。
在本实施例中,在获得各个主机节点的负载信息之后,通过比较负载信息和预设驱逐阈值之间的关系,将各个主机节点划分为待驱逐节点和非驱逐节点。这里的负载信息包括但不限于上述节点指标中的CPU使用率、内存使用率和系统负载;相应的,预设驱逐阈值包括但不限于预设CPU负载阈值、预设内存负载阈值和预设系统负载阈值。
可选地,当负载信息中的至少一项指标其对应的预设驱逐阈值时,则判定该主机节点为待驱逐节点;否则,判定主机节点为非驱逐节点。
具体地,当所述主机节点的CPU使用率大于所述主机节点的预设CPU负载阈值时,判定所述主机节点为待驱逐节点;和/或,当所述主机节点的内存使用率大于所述主机节点的预设内存负载阈值时,判定所述主机节点为待驱逐节点;和/或,当所述主机节点的系统负载大于所述主机节点的预设系统负载阈值时,判定所述主机节点为待驱逐节点。这样可以准确识别负载过高的节点,并采取相应的措施来实现负载均衡。可以理解地,预设阈值可以根据实际需要进行设置。
由于超过预设驱逐阈值的驱逐节点可能对系统的性能和可靠性产生影响,故通过将负载过高的主机节点识别为待驱逐节点,进而可以对待驱逐节点进行驱逐操作,来提高整体系统性能并优化系统资源的利用。
步骤S300:获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数在所述待驱逐节点中选定待驱逐容器。
在本实施例中,在将各个主机节点划分为待驱逐节点和非驱逐节点之后,调用各个待驱逐节点对应的容器权重配置参数。然后基于容器权重配置参数,确定待驱逐容器。可以理解地,每个主机节点上都运行有多个容器。
可选地,根据所述容器权重配置参数,对所述待驱逐节点的各个容器进行保障等级划分,确定所述各个容器对应的保障等级,然后基于各个容器对应的保障等级,将保障等级低的容器标记为待驱逐容器,进而确定待驱逐容器。这里的容器的保障等级,包括但不限于无保障级别容器、尽量保障级别容器、优先保障级别容器和严格保障级别容器等。通过权重配置参数划分容器的保障等级,这样可以准确地评估容器的重要性和影响程度;基于保障等级来确定待驱逐容器,可以保持整体系统的稳定性和性能。
具体地,当所述待驱逐节点存在无保障级别容器时,将所述无保障级别容器作为所述待驱逐容器;当所述待驱逐节点无所述无保障级别容器时,将尽量保障级别容器作为所述待驱逐容器;当所述待驱逐节点无所述无保障级别容器和所述尽量保障级别容器时,将优先保障级别容器作为所述待驱逐容器;当所述待驱逐节点全为严格保障级别容器时,将所述严格保障级别容器作为所述待驱逐容器。这样可以确保关键容器或者资源敏感容器得到充分的保障,进而降低系统稳定性的风险。
步骤S400:若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作。
在本实施例中,在确定待驱逐容器之后,确定是否存在可以用于运行待驱逐容器的非驱逐节点。若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作。在待驱逐节点上,驱逐待驱逐容器,然后,在可运行所述待驱逐容器的非驱逐节点上,运行所述待驱逐容器。
示例性地,假设预设驱逐阈值包括主机节点的预设CPU负载阈值90%,和预设系统负载阈值15%。假设通过K8S在各个主机节点上的代理组件上获得主机集群中的一个主机节点的CPU使用率为91%,系统负载为16%。由于该主机节点的CPU使用率为91%,大于主机节点的预设CPU负载阈值90%;并且,系统负载为16%,大于预设系统负载阈值15%,故判定该主机节点为待驱逐节点,并将该主机节点标记为待驱逐节点。
调用该主机节点的容器权重配置参数,对该主机节点上运行的容器进行保障等级划分。假设保障等级划分的结果为,该主机节点上不存在无保障级别容器,存在尽量保障级别容器A、优先保障级别容器B和严格保障级别容器C。然后,将尽量保障级别容器A标记为待驱逐容器。然后,确定是否存在可用于运行尽量保障级别容器A的非驱逐节点。
假设存在可用于运行尽量保障级别容器A的非驱逐节点,触发驱逐进程,对尽量保障级别容器A执行驱逐操作,在待驱逐节点上驱逐尽量保障级别容器A,然后在可用于运行尽量保障级别容器A的非驱逐节点上,运行尽量保障级别容器A。
在本实施例提供的技术方案中,由于通过获取主机节点的负载信息,可以了解各个主机节点的负载情况。通过预设的驱逐阈值和获取的负载信息,可以将主机节点划分为负载较高的待驱逐节点和负载较低的非驱逐节点。这样能够优先选择待驱逐节点上的容器进行驱逐,减少驱逐次数。通过获取待驱逐节点的容器权重配置参数,选择对系统影响较小的容器作为待驱逐容器,从而确保业务运行的稳定性。如果待驱逐容器可以运行于非驱逐节点,并且非驱逐节点有足够的资源来承载该容器,则触发驱逐进程并将容器从待驱逐节点迁移到非驱逐节点。这样可以减少资源抢占现象的发生,避免资源争夺导致的性能下降和业务中断。因此,可以根据负载情况和容器权重配置参数,有选择地驱逐合适的容器,减少驱逐次数,提高业务运行的稳定性,并减少CPU、网络和GPU的资源抢占现象的发生。
参照图3,基于上述实施例,在第二实施例中,所述若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作的步骤之前,还包括:
步骤S500:确定所述待驱逐容器可运行于所述非驱逐节点;
步骤S600:若否,于所述非驱逐节点创建所述待驱逐容器的镜像,获得所述可运行所述待驱逐容器的所述非驱逐节点;
步骤S700:若是,执行所述对所述待驱逐容器执行驱逐操作的步骤。
在本实施例中,在对待驱逐容器执行驱逐操作之前,需要先确定是否存在可用于运行所述待驱逐容器的非驱逐节点。若没有可用于运行所述待驱逐容器的非驱逐节点,则需要先在非驱逐节点创建所述待驱逐容器的镜像,以获得可运行所述待驱逐容器的所述非驱逐节点。然后再对待驱逐容器执行驱逐操作。
可选地,在非驱逐节点上创建待驱逐容器的镜像,首先,需要获取待驱逐容器的详细信息,包括容器的名称、镜像名称、运行参数等。然后,在非驱逐节点上,安装和配置与待驱逐容器相同的容器运行时环境,以确保可以成功运行镜像。然后,使用容器管理工具导出待驱逐容器的文件。然后将导出的文件复制到非驱逐节点上,并使用相应的命令将其导入。然后,根据待驱逐容器的运行参数和需求,在非驱逐节点上配置镜像的运行参数。最后,在非驱逐节点上使用创建的镜像运行容器,并进行测试来验证镜像的运行情况。
在本实施例提供的技术方案中,通过在驱逐操作之前,确保待驱逐容器可以在非驱逐节点上成功运行。通过在非驱逐节点上创建待驱逐容器的镜像,确保在非驱逐节点上有一个可用的容器环境,从而顺利地运行待驱逐容器,减少驱逐操作的出错概率,从而以提高业务运行的稳定性。
参照图4,基于上述实施例,在第三实施例中,所述获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数,确定所述待驱逐节点的待驱逐容器的步骤包括:
步骤S310:基于所述负载信息的容器固定指标,对所述待驱逐节点的各个容器进行排序,生成第一排序信息;
步骤S320:基于容器权重配置参数,对所述各个容器进行保障等级排序,生成第二排序信息;
步骤S330:基于所述负载信息的容器弹性指标,对所述各个容器进行排序,生成第三排序信息;
步骤S340:根据所述第一排序信息、所述第二排序信息以及所述第三排序信息,确定所述待驱逐容器。
在本实施例中,基于容器固定指标,按照先内存后磁盘的顺序,对待驱逐节点的各个容器进行排序,获得第一排序信息。按照无保障等级、尽量保障等级、优先保障等级和严格保障等级的顺序,对待驱逐节点的各个容器进行保障等级排序,获得第二排序信息。按照容器指标对待驱逐节点的各个容器进行弹性排序,获得第三排序信息。这里的容器指标包括但不限于CPU配额、CPU使用率、内存配额、内存使用率、网络出入速率、磁盘读写速率、磁盘使用量。然后,再根据所述第一排序信息、所述第二排序信息以及所述第三排序信息,确定所述待驱逐容器。
作为一种可选的实施方式,可以先根据所述第一排序信息确定第一待驱逐容器集;然后,基于所述第二排序信息,于所述第一待驱逐容器集中,确定第二待驱逐容器集;最后,基于所述第三排序信息,于所述第二待驱逐容器集中,确定所述待驱逐容器。
在本实施例提供的技术方案中,通过第一排序信息确定待驱逐容器,以确保超出负载就无法运行的容器的稳定性。根据第二排序信息确定待驱逐容器,以确保待驱逐节点中,保障等级高的容器的稳定性。根据第三排序信息确定待驱逐容器,以确保在驱逐待驱逐容器之后,能够降低待驱逐节点的负载。通过三个排序信息的综合考虑,就可以确认哪些容器是待驱逐的。这样做的目的是为了确保驱逐操作对整个环境的影响尽可能小,同时保证重要的容器能够得到优先保障,以维持整个系统的稳定运行。
此外,本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可以存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被容器驱逐设备中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有容器驱逐程序,所述容器驱逐程序被处理器执行时实现如上实施例所述的容器驱逐方法的各个步骤。
其中,所述计算机可读存储介质可以是U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
需要说明的是,由于本申请实施例提供的存储介质,为实施本申请实施例的方法所采用的存储介质,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该存储介质的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的存储介质都属于本申请所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种容器驱逐方法,其特征在于,所述容器驱逐方法包括:
获取主机集群中,各个主机节点的负载信息;
基于所述负载信息和预设驱逐阈值,将所述各个主机节点划分为待驱逐节点和非驱逐节点;
获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数在所述待驱逐节点中选定待驱逐容器;
若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作。
2.如权利要求1所述的容器驱逐方法,其特征在于,所述负载信息包括CPU使用率、内存使用率和系统负载,所述预设驱逐阈值包括预设CPU负载阈值、预设内存负载阈值和预设系统负载阈值,所述基于所述负载信息和预设驱逐阈值,将所述各个主机节点划分为待驱逐节点和非驱逐节点的步骤包括:
当所述主机节点的CPU使用率大于所述主机节点的预设CPU负载阈值时,判定所述主机节点为待驱逐节点;和/或,
当所述主机节点的内存使用率大于所述主机节点的预设内存负载阈值时,判定所述主机节点为待驱逐节点;和/或,
当所述主机节点的系统负载大于所述主机节点的预设系统负载阈值时,判定所述主机节点为待驱逐节点。
3.如权利要求1所述的容器驱逐方法,其特征在于,所述获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数,确定所述待驱逐节点的待驱逐容器的步骤包括:
根据所述容器权重配置参数,对所述待驱逐节点的各个容器进行保障等级划分,确定所述各个容器对应的保障等级;
基于所述各个容器对应的保障等级,确定所述待驱逐容器。
4.如权利要求3所述的容器驱逐方法,其特征在于,所述基于所述各个容器对应的保障等级,确定所述待驱逐容器的步骤包括:
当所述待驱逐节点存在无保障级别容器时,将所述无保障级别容器作为所述待驱逐容器;
当所述待驱逐节点无所述无保障级别容器时,将尽量保障级别容器作为所述待驱逐容器;
当所述待驱逐节点无所述无保障级别容器和所述尽量保障级别容器时,将优先保障级别容器作为所述待驱逐容器;
当所述待驱逐节点全为严格保障级别容器时,将所述严格保障级别容器作为所述待驱逐容器。
5.如权利要求1所述的容器驱逐方法,其特征在于,所述若所述待驱逐容器可运行于所述非驱逐节点,触发驱逐进程,对所述待驱逐容器执行驱逐操作的步骤之前,还包括:
确定所述待驱逐容器可运行于所述非驱逐节点;
若否,于所述非驱逐节点创建所述待驱逐容器的镜像,获得所述可运行所述待驱逐容器的所述非驱逐节点;
若是,执行所述对所述待驱逐容器执行驱逐操作的步骤。
6.如权利要求1所述的容器驱逐方法,其特征在于,所述获取所述待驱逐节点的容器权重配置参数,并基于所述容器权重配置参数,确定所述待驱逐节点的待驱逐容器的步骤包括:
基于所述负载信息的容器固定指标,对所述待驱逐节点的各个容器进行排序,生成第一排序信息;
基于容器权重配置参数,对所述各个容器进行保障等级排序,生成第二排序信息;
基于所述负载信息的容器弹性指标,对所述各个容器进行排序,生成第三排序信息;
根据所述第一排序信息、所述第二排序信息以及所述第三排序信息,确定所述待驱逐容器。
7.如权利要求6所述的容器驱逐方法,其特征在于,所述根据所述第一排序信息、所述第二排序信息以及所述第三排序信息,确定所述待驱逐容器的步骤包括:
根据所述第一排序信息确定第一待驱逐容器集;
基于所述第二排序信息,于所述第一待驱逐容器集中,确定第二待驱逐容器集;
基于所述第三排序信息,于所述第二待驱逐容器集中,确定所述待驱逐容器。
8.如权利要求1所述的容器驱逐方法,其特征在于,所述获取主机集群中,各个主机节点的负载信息的步骤包括:
向预设于所述各个主机节点的代理组件发送负载信息获取指令;
接收所述代理组件返回的所述各个主机节点的负载信息,所述代理组件基于所述负载信息获取指令调用守护进程,获取容器监控所采集的负载信息。
9.一种容器驱逐设备,其特征在于,所述容器驱逐设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的容器驱逐程序,所述容器驱逐程序配置为实现如权利要求1至8中任一项所述的容器驱逐方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有容器驱逐程序,所述容器驱逐程序被处理器执行时实现如权利要求1至8任一项所述的容器驱逐方法的步骤。
CN202311582391.8A 2023-11-23 2023-11-23 容器驱逐方法、容器驱逐设备以及可读存储介质 Pending CN117724801A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311582391.8A CN117724801A (zh) 2023-11-23 2023-11-23 容器驱逐方法、容器驱逐设备以及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311582391.8A CN117724801A (zh) 2023-11-23 2023-11-23 容器驱逐方法、容器驱逐设备以及可读存储介质

Publications (1)

Publication Number Publication Date
CN117724801A true CN117724801A (zh) 2024-03-19

Family

ID=90198854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311582391.8A Pending CN117724801A (zh) 2023-11-23 2023-11-23 容器驱逐方法、容器驱逐设备以及可读存储介质

Country Status (1)

Country Link
CN (1) CN117724801A (zh)

Similar Documents

Publication Publication Date Title
CN110837410B (zh) 任务调度方法、装置、电子设备及计算机可读存储介质
CN112153700B (zh) 一种网络切片资源管理方法及设备
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
JP5425286B2 (ja) データ処理システムのメモリ使用状況を追跡する方法
US8424007B1 (en) Prioritizing tasks from virtual machines
US9813450B1 (en) Metadata-based verification of artifact quality policy compliance
US20160299840A1 (en) Coalition based memory management
CN112346829A (zh) 一种用于任务调度的方法及设备
JP5845813B2 (ja) 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のためのノードの計算の初期化手法
US11481659B1 (en) Hyperparameter optimization using fairness constraints
CN112685410A (zh) 业务规则校验方法、装置、计算机设备及存储介质
US20180167326A1 (en) Method and system for limiting data traffic
CN115269544A (zh) 一种数据库集群升级方法、装置、电子设备及存储介质
JP5845810B2 (ja) 分散コンピューティング環境におけるソフトウェアの解析の並列化のための効率的な部分計算
CN106874093B (zh) 基于用户画像计算目标人群的方法、计算引擎及计算设备
US20130326528A1 (en) Resource starvation management in a computer system
CN116089477B (zh) 分布式训练方法及系统
CN111400241B (zh) 数据重构方法和装置
CN112631994A (zh) 数据迁移方法及系统
CN117724801A (zh) 容器驱逐方法、容器驱逐设备以及可读存储介质
CN112231053A (zh) 一种负载均衡服务分配方法及装置
CN115442262B (zh) 一种资源评估方法、装置、电子设备及存储介质
CN115951845A (zh) 一种磁盘管理方法、装置、设备及存储介质
CN116361153A (zh) 固件代码的测试方法、装置、电子设备、存储介质
CN113961334B (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