1.本发明涉及计算机科学与技术,尤其涉及一种容器集群控制方法及装置。
背景技术:
::2.随着计算机科学与技术的发展,容器集群的控制技术不断提高。3.其中,容器集群中可以包括有多个容器节点。容器节点可以为容器集群中最小的硬件单位,比如,容器节点可以为一台真实的物理机器;再比如,容器节点也可以为一个虚拟机。容器节点中可以运行有一个或多个pod。pod可以为容纳有一个或多个已封装好的容器的高级结构,同一pod中的所有容器均可以共享相同的名称空间和本地网络。而一个容器中可以包括有一个或多个打包好的应用程序。4.当前,现有技术中存在有容器集群管理平台,如kubernetes。该管理平台可以在容器集群中,对各容器节点的资源(如内存和cpu)进行整合,统筹容器集群的整体资源使用情况,将整合的资源调度给容器集群的各容器节点中的pod进行使用。5.但是,现有容器集群管理平台无法有效的对资源进行调度,导致资源利用率低。技术实现要素:6.鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的容器集群控制方法及装置,技术方案如下:7.一种容器集群控制方法,包括:8.确定容器集群对目标资源的集群资源利用率;9.判断所述集群资源利用率是否小于第一预设阈值,若是,则获得所述目标资源的集群资源分配率是否小于第二预设阈值的判断结果;10.确定与所述判断结果相对应的目标控制对象和资源控制方式;11.按照所述资源控制方式对所述目标控制对象进行相应的控制,以提高所述目标资源的集群资源利用率。12.可选的,所述确定与所述判断结果相对应的目标控制对象和资源控制方式,包括:13.如果所述判断结果为所述目标资源的集群资源分配率小于所述第二预设阈值,则确定所述目标控制对象为所述容器集群的总可售资源量,并确定所述资源控制方式为:通过将当前设置的第一超配比增大为第二超配比,来增大所述总可售资源量。14.可选的,所述确定与所述判断结果相对应的目标控制对象和资源控制方式,包括:15.如果所述判断结果为所述目标资源的集群资源分配率不小于所述第二预设阈值,则确定所述目标控制对象为至少一个pod的request值,并确定所述资源控制方式为减小至少一个pod的request值。16.可选的,所述目标资源为内存,所述方法还包括:17.当所述目标资源的集群资源分配率大于第三预设阈值时,将所述容器集群中内存分配率大于第四预设阈值的容器节点确定为目标容器节点;18.在所述目标容器节点中,基于服务质量等级对所有pod进行优先级排序,将至少一个优先级次序低的pod确定为目标pod;19.对所述目标pod进行驱逐。20.可选的,所述方法还包括:21.将所述目标pod中的一个pod确定为待分析pod;22.获得所述待分析pod的配置文件,从所述待分析pod的配置文件中读取所述分析pod的重启策略;23.在对所述待分析pod进行驱逐之后,按照所述待分析pod的重启策略,对所述待分析pod进行相应控制;24.返回执行所述将所述目标pod中的一个pod确定为待分析pod的步骤,直至按照相应的重启策略完成对所述目标pod中各所述pod的控制。25.可选的,所述方法还包括:26.获得与超配比相匹配的预备资源;27.当所述集群资源利用率大于第五预设阈值时,将所述预备资源中的至少部分资源分配至所述容器集群中的至少一个容器节点,以将所述集群资源利用率降低至不大于所述第五预设阈值;28.在将所述集群资源利用率至不大于所述第五预设阈值之后,将所述第二超配比调整为第三超配比,所述第三超配比小于所述第二超配比。29.一种容器集群控制装置,包括:第一确定单元、第一判断单元、第一获得单元、第二确定单元和第一控制单元;其中:30.所述第一确定单元,用于确定容器集群对目标资源的集群资源利用率;31.所述第一判断单元,用于判断所述集群资源利用率是否小于第一预设阈值,若是,则触发所述第一获得单元;32.所述第一获得单元,用于获得所述目标资源的集群资源分配率是否小于第二预设阈值的判断结果;33.所述第二确定单元,用于确定与所述判断结果相对应的目标控制对象和资源控制方式;34.所述第一控制单元,用于按照所述资源控制方式对所述目标控制对象进行相应的控制,以提高所述目标资源的集群资源利用率。35.可选的,所述第二确定单元包括:第三确定单元和第四确定单元;36.所述第三确定单元,用于如果所述判断结果为所述目标资源的集群资源分配率小于所述第二预设阈值,则确定所述目标控制对象为所述容器集群的总可售资源量;37.所述第四确定单元,用于确定所述资源控制方式为:通过将当前设置的第一超配比增大为第二超配比,来增大所述总可售资源量。38.可选的,所述第二确定单元包括:第五确定单元和第六确定单元;39.所述第五确定单元,用于如果所述判断结果为所述目标资源的集群资源分配率不小于所述第二预设阈值,则确定所述目标控制对象为至少一个pod的request值;40.所述第六确定单元,用于确定所述资源控制方式为减小至少一个pod的request值。41.可选的,所述目标资源为内存,所述装置还包括:第七确定单元、第八确定单元和驱逐单元;42.所述第七确定单元,用于当所述目标资源的集群资源分配率大于第三预设阈值时,将所述容器集群中内存分配率大于第四预设阈值的容器节点确定为目标容器节点;43.所述第八确定单元,用于在所述目标容器节点中,基于服务质量等级对所有pod进行优先级排序,将至少一个优先级次序低的pod确定为目标pod;44.所述驱逐单元,用于对所述目标pod进行驱逐。45.可选的,所述装置还包括:第九确定单元、第二获得单元、读取单元、第二控制单元和触发单元;46.所述第九确定单元,用于将所述目标pod中的一个pod确定为待分析pod;47.所述第二获得单元,用于获得所述待分析pod的配置文件;48.所述读取单元,用于从所述待分析pod的配置文件中读取所述分析pod的重启策略;49.所述第二控制单元,用于在对所述待分析pod进行驱逐之后,按照所述待分析pod的重启策略,对所述待分析pod进行相应控制;50.所述触发单元,用于触发所述第九确定单元,直至按照相应的重启策略完成对所述目标pod中各所述pod的控制。51.可选的,所述装置还包括:第三获得单元、分配单元和调整单元;52.所述第三获得单元,用于获得与超配比相匹配的预备资源;53.所述分配单元,用于当所述集群资源利用率大于第五预设阈值时,将所述预备资源中的至少部分资源分配至所述容器集群中的至少一个容器节点,以将所述集群资源利用率降低至不大于所述第五预设阈值;54.所述调整单元,用于在将所述集群资源利用率至不大于所述第五预设阈值之后,将所述第二超配比调整为第三超配比,所述第三超配比小于所述第二超配比。55.本实施例提出的容器集群控制方法及装置,可以确定容器集群对目标资源的集群资源利用率,判断集群资源利用率是否小于第一预设阈值,若是,则获得目标资源的集群资源分配率是否小于第二预设阈值的判断结果,确定与判断结果相对应的目标控制对象和资源控制方式,按照资源控制方式对目标控制对象进行相应的控制,增加pod到容器集群的容器节点中,给增加进来的pod分配目标资源,来提高容器集群对目标资源的使用量,从而提高容器集群对目标资源的集群资源利用率。56.上述说明仅是本发明技术方案的概述,为了能够更清楚地了解本发明的技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明57.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。58.图1示出了本发明实施例提供的第一种容器集群控制方法的流程图;59.图2示出了本发明实施例提供的第一种容器集群控制装置的结构示意图。具体实施方式60.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。61.如图1所示,本实施例提出了第一种容器集群控制方法,该方法可以包括以下步骤:62.s101、确定容器集群对目标资源的集群资源利用率;63.需要说明的是,本发明可以应用于容器集群管理平台。64.其中,目标资源可以是某种类型的计算机资源,比如cpu、内存、硬盘或网络资源。65.其中,目标资源的集群资源利用率可以为容器集群对目标资源的使用量与所有容器节点中目标资源的实际总量之比。66.s102、判断集群资源利用率是否小于第一预设阈值,若是,则执行步骤s103;否则,禁止执行步骤s103,避免无谓资源的消耗;67.其中,第一预设阈值可以用于判断当前容器集群对目标资源的集群资源利用率的高低程度。68.具体的,当目标资源的集群资源利用率小于第一预设阈值时,本发明可以确定目标资源的集群资源利用率较低,并执行步骤s103;当目标资源的集群资源利用率不小于第一预设阈值时,本发明可以确定目标资源的集群资源利用率69.需要说明的是,第一预设阈值可以由技术人员根据实际情况进行设置,本发明对此不作限定,比如可以设置为15%。70.s103、获得目标资源的集群资源分配率是否小于第二预设阈值的判断结果;71.其中,目标资源的集群资源分配率可以为容器集群中所有pod对目标资源的request值的总量与所有容器节点可分配的目标资源的总量之比。需要说明的是,pod对目标资源的request值可以是由技术人员预先根据pod的情况进行设置的。72.其中,第二预设阈值可以用于判断目标资源的集群资源分配率的大小程度。73.具体的,当判断结果为目标资源的集群资源分配率小于第二预设阈值时,本发明可以确定目标资源的集群资源分配率较低;当判断结果为目标资源的集群资源分配率不小于第二预设阈值时,本发明可以确定目标资源的集群资源分配率不低或者较高。74.需要说明的是,第二预设阈值可以由技术人员根据实际情况进行设置,本发明对此不作限定,比如,可以设置为60%。75.s104、确定与判断结果相对应的目标控制对象和资源控制方式;76.其中,目标控制对象可以为本发明为提高对目标资源的集群资源利用率所需要控制的对象。77.其中,资源控制方式可以为本发明为提高对目标资源的集群资源利用率所需采取的针对目标控制对象的控制方式。78.具体的,本发明在目标资源的集群资源利用率小于第一预设阈值阈值时,根据上述判断结果来确定目标控制对象和资源控制方式。79.可选的,在本实施例提出的第二种容器集群控制方法中,步骤s104可以包括:80.如果判断结果为目标资源的集群资源分配率小于第二预设阈值,则确定目标控制对象为容器集群的总可售资源量,并确定资源控制方式为:通过将当前设置的第一超配比增大为第二超配比,来增大总可售资源量。81.其中,总可售资源量可以为容器集群中所有容器节点对目标资源的可供给资源量的总量与超配比的乘积。容器节点对目标资源的可供给资源量,可以为容器集群管理平台在整合所有容器节点中的目标资源之后,分配给容器节点的目标资源的资源量。可以理解的是,总可售资源量可以大于所有容器节点可供给的目标资源的总资源量(此时超配比大于1)。82.具体的,当目标资源的集群资源利用率小于第一预设阈值,集群资源分配率小于第二预设阈值时,本发明可以确定容器集群中当前pod的数量较少,此时可以通过增大资源售卖池中的总可售资源量,来使得可以将更多的pod调度进容器集群中,从而可以调度更多的任务或作业进入容器集群中进行运行,提高容器集群对目标资源的集群资源利用率。83.需要说明的是,本发明是否可以在容器集群的目标容器节点中增加pod,与容器集群中所有pod对目标资源的limit值之和、总可售资源量和目标容器节点针对目标资源的剩余可分配资源相关。剩余可分配资源可以为目标容器节点对目标资源的可供给资源量,减去目标容器节点上所有非终止状态的pod对目标资源的request总量所获得的值。84.具体的,容器集群中所有pod的limit值之和可以是不能大于总可售资源量。当待调入容器集群的pod的limit值,与已在容器集群中所有pod的limit值之和不大于总可售资源量时,本发明可以将该待调入容器集群的pod调入容器集群中;而当待调入容器集群的pod的limit值,与已在容器集群中所有pod的limit值之和大于总可售资源量时,本发明可以禁止将该待调入容器集群的pod调入容器集群中。85.具体的,目标容器节点上所有非终止状态的pod对目标资源的request总量不能大于目标容器节点对目标资源的可供给资源量。当待调入目标容器节点的pod对目标资源的request值,与目标容器节点上已有的所有非终止状态的pod对目标资源的request总量的和值,不大于可供给资源量时,本发明可以将该待调入目标容器节点的pod调入目标容器节点上;当待调入目标容器节点的pod对目标资源的request值,与目标容器节点上已有的所有非终止状态的pod对目标资源的request总量的和值,大于可供给资源量时,本发明可以禁止将该待调入目标容器节点的pod调入目标容器节点上。86.具体的,当目标资源的集群资源利用率小于第一预设阈值,集群资源分配率小于第二预设阈值时,本发明可以认为当前所有容器节点关于目标资源的可供给资源量的总量是充足的,且容器集群中包含的pod的数量较少,此时无需在容器集群中添加新的目标资源,而可以通过增加pod到容器集群的容器节点中,给增加进来的pod分配目标资源,来提高容器集群对目标资源的使用量,从而提高容器集群对目标资源的集群资源利用率。可以理解的是,在容器集群中增加pod后,可以同时提高容器集群中所有pod对目标资源的request总量,从而可以提高容器集群对目标资源的集群资源分配率。87.具体的,当目标资源的集群资源利用率小于第一预设阈值,集群资源分配率小于第二预设阈值时,本发明可以确定目标控制对象为容器集群的总可售资源量,并确定资源控制方式为通过增大超配比来增大对目标资源的总可售资源量。可以理解的是,本发明在通过增大超配比来增大总可售资源量时,所有容器节点关于目标资源的可供给资源量的总量是不变的,而可以在容器集群中所有pod的limit总量不大于总可售资源量的前提下,向容器集群中增加新的pod。88.可选的,本发明在增大超配比时,可以按照一定的步长(如10%)的增加方式来增大超配比。89.可选的,在本实施例提出的第三种容器集群控制方法中,上述步骤s104可以包括:90.如果判断结果为目标资源的集群资源分配率不小于第二预设阈值,则确定目标控制对象为至少一个pod的request值,并确定资源控制方式为减小至少一个pod的request值。91.具体的,当目标资源的集群资源利用率小于第一预设阈值,集群资源分配率不小于第二预设阈值时,本发明可以认为当前所有容器节点关于目标资源的可供给资源量的总量是充足的,且容器集群对目标资源的实际超卖程度较低,此时可以仅通过降低至少一个pod的request值来提高容器集群对目标资源的集群资源利用率。92.需要说明的是,降低pod的request值,可以成为pod压缩。在理论上,pod压缩比=1/集群超配比。假定容器集群上的所有pod都是常驻服务,且pod的request值全部是limit值的n%,则容器集群的总资源量(sumnamespaceresourcequota)可以设置为容器集群实际的可供给资源量(sumnodeallocatable)的(100/n)%。这种情况下,本发明可以尽可能多地向容器集群提交pod,以使得每个容器节点的request占比接近100%,limit占比接近(100/n)%93.其中,待降低request值的pod可以是容器集群中已有的pod,也可以是待调入容器集群的pod。94.需要说明的是,本发明在降低至少一个pod的request值时,可以在有效避免容器集群对目标资源的集群资源分配率过高的情况下,在容器集群中引入新的pod,提高对目标资源的集群资源利用率。95.具体的,本发明在降低pod的request值时,可以避免影响pod对任务的正常执行。96.具体的,本发明在选取待降低request值的pod时,可以先行获得容器集群的各容器节点上的各pod的资源使用情况,确定各pod的request值的设置是否合理,之后可以将确定出的request值设置偏大的pod确定为待降低request值的pod。97.可选的,在本实施例提出的其它容器集群控制方法中,当目标资源的集群资源利用率小于第一预设阈值,集群资源分配率不小于第二预设阈值时,本发明也可以通过同时采取降低至少一个pod的request值和提高总可售资源量的方式,来使得容器集群可以引入更多的pod,提高容器集群对目标资源的集群资源利用率。此时,目标控制对象可以包括至少一个pod的request值以及目标资源的总可售资源量,资源控制方式可以包括降低至少一个pod的request值和提高总可售资源量。98.s105、按照资源控制方式对目标控制对象进行相应的控制,以提高目标资源的集群资源利用率。99.具体的,本发明在确定目标控制对象和资源控制方式之后,即可以通过按照已确定的资源控制方式对目标控制对象进行相应的控制,来提高容器集群对目标资源的集群资源利用率。100.本实施例提出的容器集群控制方法,可以确定容器集群对目标资源的集群资源利用率,判断集群资源利用率是否小于第一预设阈值,若是,则获得目标资源的集群资源分配率是否小于第二预设阈值的判断结果,确定与判断结果相对应的目标控制对象和资源控制方式,按照资源控制方式对目标控制对象进行相应的控制,增加pod到容器集群的容器节点中,给增加进来的pod分配目标资源,来提高容器集群对目标资源的使用量,从而提高容器集群对目标资源的集群资源利用率。101.基于图1所示,本实施例提出第四种容器集群控制方法。在该方法中,目标资源可以为内存,该方法还可以包括:102.当目标资源的集群资源分配率大于第三预设阈值时,将容器集群中内存分配率大于第四预设阈值的容器节点确定为目标容器节点;103.在目标容器节点中,基于服务质量等级对所有pod进行优先级排序,将至少一个优先级次序低的pod确定为目标pod;104.对目标pod进行驱逐。105.其中,第三预设阈值可以用于判断容器集群中内存的资源分配率的高低程度。可选的,当内存的集群资源分配率大于第三预设阈值时,本发明可以确定内存的集群资源分配率过高,容器集群存在内存紧缺风险;当内存的集群资源分配率不大于第三预设阈值时,本发明可以确定内存的集群资源分配率未过高,容器集群未存在内存紧缺风险。具体的,第三预设阈值可以由技术人员根据实际情况进行设置,本发明对此不作限定。106.需要说明的是,在对容器集群的售卖资源池进行超配设置后,本发明如果确定容器集群的内存存在紧缺风险,则可以先行从容器集群中确定出运行压力大的容器节点,并按照预定义的pod驱逐策略在该容器节点中确定需要驱逐的pod,对需要驱逐的pod进行驱逐,释放内存,消除或者缓解内存紧缺风险。107.其中,第四预设阈值可以用于判断容器节点运行压力的大小程度。可选的,当某个容器节点的内存分配率大于第四预设阈值时,本发明可以确定该容器节点的运行压力较大;当某个容器节点的内存分配率不大于第四预设阈值时,本发明可以确定该容器节点的运行压力不大。108.其中,目标容器节点可以包括一个或多个容器节点。目标pod也可以包括一个或多个pod。109.具体的,本发明在确定出目标容器节点之后,确定目标容器节点中各pod的服务质量等级(qualityofservice,qos),并按照各pod的qos排名,确定各pod的驱逐优先级,基于各pod的驱逐优先级相应确定可以优先驱逐的pod。110.具体的,本发明可以通过配置cpu/mem的limits与requests值的大小来确认各pod的qos。其中,对于某个pod,当该pod的request值与limit值相等时,可以确定该pod的qos为guaranteed,当该pod的request值小于limit值时,可以确定该pod的qos为burstable,当该pod的没有任何内存或者cpu的限制或请求时,可以确定该pod的qos为best-effort。其中,guaranteed、burstable和best-effort的驱逐优先级排名可以为best-effort》burstable》guaranteed,即best-effort等级的pod在容器节点出现内存紧缺时将会最先被驱逐。111.可选的,在上述第四种容器集群控制方法中,还可以包括:112.将目标pod中的一个pod确定为待分析pod;113.获得待分析pod的配置文件,从待分析pod的配置文件中读取分析pod的重启策略;114.在对待分析pod进行驱逐之后,按照待分析pod的重启策略,对待分析pod进行相应控制;115.返回执行将目标pod中的一个pod确定为待分析pod的步骤,直至按照相应的重启策略完成对目标pod中各pod的控制。116.具体的,本发明可以预先的分别针对pod设置相应的配置文件,并可以分别在各pod的配置文件中定义相应的重启策略。当某个pod受到驱逐时,本发明可以按照预先针对该pod配置的重启策略,确定是否对该pod进行重启,即确定是否在容器集群中除目标容器节点之外的容器节点中重启该pod。具体的,重启策略可以包括always,onfailure和never共三种方式,其中:117.always:当pod失效时,本发明可以自动重启该pod;118.onfailure:当pod终止运行且退出码不为0时,本发明可以自动重启该pod;119.never:无论pod的运行状态如何,本发明均禁止对该pod进行重启。120.可选的,当大量pod发生失败情况,本发明可以通过kubectldescribepod可以查询pod重启的原因,如oomkilled。121.本实施例提出的容器集群控制方法,可以在对容器集群的售卖资源池进行超配设置后,如果确定容器集群的内存存在紧缺风险,则可以先行从容器集群中确定出运行压力大的容器节点,并按照预定义的pod驱逐策略在该容器节点中确定需要驱逐的pod,对需要驱逐的pod进行驱逐,释放内存,消除或者缓解内存紧缺风险,实现对容器集群的优化控制。122.基于上述第二种容器集群控制方法,本实施例提出第五种容器集群控制方法,该第五种容器集群控制方法中还可以包括:123.获得与超配比相匹配的预备资源;124.当集群资源利用率大于第五预设阈值时,将预备资源中的至少部分资源分配至容器集群中的至少一个容器节点,以将集群资源利用率降低至不大于第五预设阈值;125.在将集群资源利用率至不大于第五预设阈值之后,将第二超配比调整为第三超配比,第三超配比小于第二超配比。126.其中,预备资源可以为本发明为从容器集群预备的部分计算机资源。该部分计算机资源可以是从容器集群的容器节点中获得的,也可以是从非容器集群的地方(如不属于容器集群的电子设备)处获得的。127.其中,第五预设阈值可以用于判断目标资源是否存在紧缺风险。具体的,当目标资源的集群资源利用率大于第五预设阈值时,本发明可以在确定容器集群中的目标资源存在紧缺风险时,为避免优先级较高的pod被驱逐,可以启用预备资源,将预备资源分配给容器集群,缓解或消除容器集群出现的目标资源的紧缺风险。此时,本发明还可以对第二超配比进行调整,降低为第三超配比。128.具体的,第三超配比可以由技术人员根据实际情况进行设置,本发明对此不作限定,比如第三超配比可以为上述第一超配比。129.可选的,在本实施例提出的其它容器集群方法中,本发明可以通过控制器来控制pod。具体的,一个控制器可以对应控制多个pod。130.具体的,如果一个pod未存在相对应的控制器,则当该pod被驱逐且不再重启时,本发明可以回收该pod所占用的集群资源,标记该pod此前所在的容器节点的节点状态为资源不足,比如taints:node.kubernetes.io/memory-pressure:noschedule。131.具体的,如果一个pod存在相对应的控制器,如deployment/statefullset控制器,则当该pod从一个容器节点中被驱逐时,本发明可以在容器集群中的其他容器节点中重建该pod,回收该pod所在的原容器节点中的相应资源,标记原容器节点的节点状态为资源不足,比如taints:node.kubernetes.io/memory-pressure:noschedule。此时,如果该pod对应的控制器为deployment控制器,则该pod的名称在其他容器节点中重建时可以发生变化;如果控制器为statefullset控制器,则该pod的名称在其他容器节点中重建时可以不发生变化。132.需要说明的是,为避免发生优先级较高的pod被驱逐的情况,影响正在运行的业务,业务负责人需对作业的cpu、内存资源需求有深入理解,对业务负载要有充分的预估。开启集群超配后,运营人员应在资源分配阶段提前预留对应超配比的部分资源,当业务负载过大,集群资源利用率超过建议值时,能及时将超配比调回原始值。133.可选的,在本实施例提出的其它容器集群控制方法中,本发明可以长期监控容器集群的资源使用情况,为容量分析和超配比调控提供数据参考。本发明可以结合容器集群(如kubernetes)自身的资源调度理论和prometheus监控指标和可视化监控视图,根据长时间的容器集群容量分析计算出合理的超配比和资源调控方案,适用于需要长期维护的应用系统,开发成本低,方案实施难度小。134.需要说明的是,本发明可以统筹集群整体的资源使用情况,将合适的集群资源分配给pod容器使用,保证充分利用资源,提高资源利用率,又可以保证重要pod在运行周期内能够获得足够的集群资源而稳定运行。本发明可以通用性和高效性,从根源上解决容器集群资源利用率低的痛点,通过长期监控集群的资源使用情况进行合理的资源调配,为运维人员提供了合理有效的长期调控方案。135.本实施例提出的容器集群控制方法,可以在确定容器集群中的目标资源存在紧缺风险时,为避免优先级较高的pod被驱逐,可以启用预备资源,将预备资源分配给容器集群,缓解或消除容器集群出现的目标资源的紧缺风险。136.与图1所示方法相对应,如图2所示,本实施例提出第一种容器集群控制装置,该装置可以包括:第一确定单元101、第一判断单元102、第一获得单元103、第二确定单元104和第一控制单元105;其中:第一确定单元101,用于确定容器集群对目标资源的集群资源利用率;137.第一判断单元102,用于判断集群资源利用率是否小于第一预设阈值,若是,则触发第一获得单元103;138.第一获得单元103,用于获得目标资源的集群资源分配率是否小于第二预设阈值的判断结果;139.第二确定单元104,用于确定与判断结果相对应的目标控制对象和资源控制方式;140.第一控制单元105,用于按照资源控制方式对目标控制对象进行相应的控制,以提高目标资源的集群资源利用率。141.需要说明的是,第一确定单元101、第一判断单元102、第一获得单元103、第二确定单元104和第一控制单元105可以分别参照图1中的步骤s101、s102、s103、s104和s105,本发明不再赘述第一确定单元101、第一判断单元102、第一获得单元103、第二确定单元104和第一控制单元105的相关说明内容。142.可选的,第二确定单元104包括:第三确定单元和第四确定单元;143.第三确定单元,用于如果判断结果为目标资源的集群资源分配率小于第二预设阈值,则确定目标控制对象为容器集群的总可售资源量;144.第四确定单元,用于确定资源控制方式为:通过将当前设置的第一超配比增大为第二超配比,来增大总可售资源量。145.可选的,第二确定单元104包括:第五确定单元和第六确定单元;146.第五确定单元,用于如果判断结果为目标资源的集群资源分配率不小于第二预设阈值,则确定目标控制对象为至少一个pod的request值;147.第六确定单元,用于确定资源控制方式为减小至少一个pod的request值。148.可选的,目标资源为内存,上述装置还包括:第七确定单元、第八确定单元和驱逐单元;149.第七确定单元,用于当目标资源的集群资源分配率大于第三预设阈值时,将容器集群中内存分配率大于第四预设阈值的容器节点确定为目标容器节点;150.第八确定单元,用于在目标容器节点中,基于服务质量等级对所有pod进行优先级排序,将至少一个优先级次序低的pod确定为目标pod;151.驱逐单元,用于对目标pod进行驱逐。152.可选的,上述装置还包括:第九确定单元、第二获得单元、读取单元、第二控制单元和触发单元;153.第九确定单元,用于将目标pod中的一个pod确定为待分析pod;154.第二获得单元,用于获得待分析pod的配置文件;155.读取单元,用于从待分析pod的配置文件中读取分析pod的重启策略;156.第二控制单元,用于在对待分析pod进行驱逐之后,按照待分析pod的重启策略,对待分析pod进行相应控制;157.触发单元,用于触发第九确定单元,直至按照相应的重启策略完成对目标pod中各pod的控制。158.可选的,上述装置还包括:第三获得单元、分配单元和调整单元;159.第三获得单元,用于获得与超配比相匹配的预备资源;160.分配单元,用于当集群资源利用率大于第五预设阈值时,将预备资源中的至少部分资源分配至容器集群中的至少一个容器节点,以将集群资源利用率降低至不大于第五预设阈值;161.调整单元,用于在将集群资源利用率至不大于第五预设阈值之后,将第二超配比调整为第三超配比,第三超配比小于第二超配比。162.本实施例提出的容器集群控制装置,可以确定容器集群对目标资源的集群资源利用率,判断集群资源利用率是否小于第一预设阈值,若是,则获得目标资源的集群资源分配率是否小于第二预设阈值的判断结果,确定与判断结果相对应的目标控制对象和资源控制方式,按照资源控制方式对目标控制对象进行相应的控制,增加pod到容器集群的容器节点中,给增加进来的pod分配目标资源,来提高容器集群对目标资源的使用量,从而提高容器集群对目标资源的集群资源利用率。163.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。164.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。当前第1页12当前第1页12
技术特征:
1.一种容器集群控制方法,其特征在于,包括:确定容器集群对目标资源的集群资源利用率;判断所述集群资源利用率是否小于第一预设阈值,若是,则获得所述目标资源的集群资源分配率是否小于第二预设阈值的判断结果;确定与所述判断结果相对应的目标控制对象和资源控制方式;按照所述资源控制方式对所述目标控制对象进行相应的控制,以提高所述目标资源的集群资源利用率。2.根据权利要求1所述的容器集群控制方法,其特征在于,所述确定与所述判断结果相对应的目标控制对象和资源控制方式,包括:如果所述判断结果为所述目标资源的集群资源分配率小于所述第二预设阈值,则确定所述目标控制对象为所述容器集群的总可售资源量,并确定所述资源控制方式为:通过将当前设置的第一超配比增大为第二超配比,来增大所述总可售资源量。3.根据权利要求1所述的容器集群控制方法,其特征在于,所述确定与所述判断结果相对应的目标控制对象和资源控制方式,包括:如果所述判断结果为所述目标资源的集群资源分配率不小于所述第二预设阈值,则确定所述目标控制对象为至少一个pod的request值,并确定所述资源控制方式为减小至少一个pod的request值。4.根据权利要求1所述的容器集群控制方法,其特征在于,所述目标资源为内存,所述方法还包括:当所述目标资源的集群资源分配率大于第三预设阈值时,将所述容器集群中内存分配率大于第四预设阈值的容器节点确定为目标容器节点;在所述目标容器节点中,基于服务质量等级对所有pod进行优先级排序,将至少一个优先级次序低的pod确定为目标pod;对所述目标pod进行驱逐。5.根据权利要求4所述的容器集群控制方法,其特征在于,所述方法还包括:将所述目标pod中的一个pod确定为待分析pod;获得所述待分析pod的配置文件,从所述待分析pod的配置文件中读取所述分析pod的重启策略;在对所述待分析pod进行驱逐之后,按照所述待分析pod的重启策略,对所述待分析pod进行相应控制;返回执行所述将所述目标pod中的一个pod确定为待分析pod的步骤,直至按照相应的重启策略完成对所述目标pod中各所述pod的控制。6.根据权利要求2所述的容器集群控制方法,其特征在于,所述方法还包括:获得与超配比相匹配的预备资源;当所述集群资源利用率大于第五预设阈值时,将所述预备资源中的至少部分资源分配至所述容器集群中的至少一个容器节点,以将所述集群资源利用率降低至不大于所述第五预设阈值;在将所述集群资源利用率至不大于所述第五预设阈值之后,将所述第二超配比调整为第三超配比,所述第三超配比小于所述第二超配比。
7.一种容器集群控制装置,其特征在于,包括:第一确定单元、第一判断单元、第一获得单元、第二确定单元和第一控制单元;其中:所述第一确定单元,用于确定容器集群对目标资源的集群资源利用率;所述第一判断单元,用于判断所述集群资源利用率是否小于第一预设阈值,若是,则触发所述第一获得单元;所述第一获得单元,用于获得所述目标资源的集群资源分配率是否小于第二预设阈值的判断结果;所述第二确定单元,用于确定与所述判断结果相对应的目标控制对象和资源控制方式;所述第一控制单元,用于按照所述资源控制方式对所述目标控制对象进行相应的控制,以提高所述目标资源的集群资源利用率。8.根据权利要求7所述的容器集群控制装置,其特征在于,所述第二确定单元包括:第三确定单元和第四确定单元;所述第三确定单元,用于如果所述判断结果为所述目标资源的集群资源分配率小于所述第二预设阈值,则确定所述目标控制对象为所述容器集群的总可售资源量;所述第四确定单元,用于确定所述资源控制方式为:通过将当前设置的第一超配比增大为第二超配比,来增大所述总可售资源量。9.根据权利要求7所述的容器集群控制装置,其特征在于,所述第二确定单元包括:第五确定单元和第六确定单元;所述第五确定单元,用于如果所述判断结果为所述目标资源的集群资源分配率不小于所述第二预设阈值,则确定所述目标控制对象为至少一个pod的request值;所述第六确定单元,用于确定所述资源控制方式为减小至少一个pod的request值。10.根据权利要求7所述的容器集群控制装置,其特征在于,所述目标资源为内存,所述装置还包括:第七确定单元、第八确定单元和驱逐单元;所述第七确定单元,用于当所述目标资源的集群资源分配率大于第三预设阈值时,将所述容器集群中内存分配率大于第四预设阈值的容器节点确定为目标容器节点;所述第八确定单元,用于在所述目标容器节点中,基于服务质量等级对所有pod进行优先级排序,将至少一个优先级次序低的pod确定为目标pod;所述驱逐单元,用于对所述目标pod进行驱逐。
技术总结
本发明公开了一种容器集群控制方法及装置,可以确定容器集群对目标资源的集群资源利用率,判断集群资源利用率是否小于第一预设阈值,若是,则获得目标资源的集群资源分配率是否小于第二预设阈值的判断结果,确定与判断结果相对应的目标控制对象和资源控制方式,按照资源控制方式对目标控制对象进行相应的控制,增加pod到容器集群的容器节点中,给增加进来的pod分配目标资源,来提高容器集群对目标资源的使用量,从而提高容器集群对目标资源的集群资源利用率。群资源利用率。群资源利用率。
技术研发人员:胡文端
受保护的技术使用者:中国建设银行股份有限公司
技术研发日:2021.11.25
技术公布日:2022/3/8