CN111147565A - 一种集群节点控制方法、装置、设备及可读存储介质 - Google Patents
一种集群节点控制方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN111147565A CN111147565A CN201911332564.4A CN201911332564A CN111147565A CN 111147565 A CN111147565 A CN 111147565A CN 201911332564 A CN201911332564 A CN 201911332564A CN 111147565 A CN111147565 A CN 111147565A
- Authority
- CN
- China
- Prior art keywords
- node
- target
- preset
- cluster
- running data
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种集群节点控制方法,包括:获取集群中各个目标开机节点的运行数据,并利用运行数据计算平均运行数据;其中,目标开机节点为处于开机状态的目标节点;判断平均运行数据是否满足预设控制条件;其中,预设控制条件包括预设关机条件和预设开机条件;若平均运行数据满足预设控制条件,则对第一目标节点执行预设控制条件对应的目标操作;其中,目标操作为节点关机操作或节点开机操作;该方法可以对集群中的节点进行关机操作或开机操作,对节点中处于开机状态的节点数量进行调整,在业务量低谷期时减少开机的节点以便节省集群所消耗的能源;此外,本发明还提供了一种集群节点控制装置、设备及计算机可读存储介质,同样具有上述有益效果。
Description
技术领域
本发明涉及分布式集群技术领域,特别涉及一种集群节点控制方法、集群节点控制装置、集群节点控制设备及计算机可读存储介质。
背景技术
当今为云计算技术迅速发展的时代,而随着越来越多用户已经体验到容器化技术带来的便利部署和效率提升,云数据中心中的k8s集群规模也在不断增大。Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
Kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、内建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。同时Kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节。
2017年,全球各地约有800万个数据中心(从小型服务器机柜到大型数据中心)正在处理数据负载。这些数据中心消耗了416.2太瓦时(1太瓦时约为10亿千瓦时)的电力。这相当于全球总用电量的2%,预计到2020年将高达全球用电量的5%。数据中心平均消耗的功率是大型商业写字楼的100倍以上。一个大型数据中心使用相当于一个美国小城市的总电量。为服务器供电和冷却所需的电能占到数据中心总运营成本的40%,因此数据中心的能源消耗较高的问题不容忽视。
因此,如何解决现有集群工作方法消耗的能源较多,浪费资源并提高运营成本的问题,是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种集群节点控制方法、集群节点控制装置、集群节点控制设备及计算机可读存储介质,解决了现有集群工作方法消耗的能源较多,浪费资源并提高运营成本的问题。
为解决上述技术问题,本发明提供了一种集群节点控制方法,包括:
获取集群中各个目标开机节点的运行数据,并利用所述运行数据计算平均运行数据;其中,所述目标开机节点为处于开机状态的目标节点;
判断所述平均运行数据是否满足预设控制条件;其中,所述预设控制条件包括预设关机条件和预设开机条件;
若所述平均运行数据满足所述预设控制条件,则对第一目标节点执行所述预设控制条件对应的目标操作;其中,所述目标操作为节点关机操作或节点开机操作。
可选地,当所述目标操作为所述节点开机操作时,所述对第一目标节点执行所述预设控制条件对应的目标操作,包括:
调用IPMI接口对所述第一目标节点进行开机操作,并通过k8s接口对所述第一目标节点发送uncordon指令,以便将所述第一目标节点设置为可调度状态。
可选地,当所述目标操作为所述节点关机操作时,所述对第一目标节点执行所述预设控制条件对应的目标操作,包括:
通过k8s接口对所述第一目标节点发送cordon指令,以便将所述第一目标节点设置为不可调度状态;
获取所述第一目标节点对应的pod列表;
通过所述k8s接口向所述第一目标节点发送drain指令,以便将所述第一目标节点上的pod疏散至其他节点;其中,所述其他节点为所述集群中除第一目标节点以外的任意目标开机节点;
利用所述pod列表判断所述第一目标节点上是否还存在所述pod;
若所述第一目标节点上不存在所述pod,则利用所述pod列表判断所述pod是否在所述其他节点上启动成功;
若所述pod在所述其他节点上启动成功,则调用IPMI接口将所述第一目标节点关机。
可选地,若所述pod没有在所述其他节点上启动成功,包括:
通过k8s接口对所述第一目标节点发送uncordon指令,以便将所述第一目标节点设置为可调度状态;
恢复所述第一目标节点上的所述pod。
可选地,所述判断所述平均运行数据是否满足预设控制条件,包括:
判断所述平均运行数据是否处于第一预设区间;
若所述平均运行数据处于所述第一预设区间,则确定所述平均运行数据满足所述预设关机条件;
若所述平均运行数据不处于所述第一预设区间,则判断所述平均运行数据是否处于第二预设区间;
若所述平均运行数据处于所述第二预设区间,则确定所述平均运行数据满足所述预设开机条件。
可选地,所述判断所述平均运行数据是否满足预设控制条件,包括:
判断所述平均运行数据对应的当前时刻是否为第一时刻;
若所述当前时刻为所述第一时刻,则确定所述平均运行数据满足所述预设关机条件;
若所述当前时刻不为所述第一时刻,则判断所述当前时刻是否为第二时刻;
若所述当前时刻为所述第二时刻,则确定所述平均运行数据满足所述预设开机条件。
可选地,还包括:
获取参数设置指令,按照所述参数设置指令设置对应的参数;
相应的,所述对第一目标节点执行所述预设控制条件对应的目标操作,包括:
按照所述参数对所述第一目标节点执行所述预设控制条件对应的所述目标操作。
本发明还提供了一种集群节点控制装置,包括:
获取模块,用于获取集群中各个目标开机节点的运行数据,并利用所述运行数据计算平均运行数据;其中,所述目标开机节点为处于开机状态的目标节点;
判断模块,用于判断所述平均运行数据是否满足预设控制条件;其中,所述预设控制条件包括预设关机条件和预设开机条件;
执行模块,用于若所述平均运行数据满足所述预设控制条件,则对第一目标节点执行所述预设控制条件对应的目标操作;其中,所述目标操作为节点关机操作或节点开机操作。
本发明还提供了一种集群节点控制设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的集群节点控制方法。
本发明还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的集群节点控制方法。
本发明提供的集群节点控制方法,获取集群中各个目标开机节点的运行数据,并利用运行数据计算平均运行数据;其中,目标开机节点为处于开机状态的目标节点。判断平均运行数据是否满足预设控制条件;其中,预设控制条件包括预设关机条件和预设开机条件。若平均运行数据满足预设控制条件,则对第一目标节点执行预设控制条件对应的目标操作;其中,目标操作为节点关机操作或节点开机操作。
可见,该方法获取目标开机节点的运行数据计算得到平均运行数据,并判断平均运行数据是否满足预设控制条件。由于集群在实际业务运行时会存在业务量高峰期和业务量低谷期,因此计算得到的平均运行数据可能满足预设控制条件。在确定平均运行数据满足预设控制条件时,根据预设控制条件的具体内容不同,执行对应的目标操作,即当预设控制条件为预设关机条件时,目标操作为节点关机操作,预设控制条件为预设开机条件时,目标操作为节点开机操作。根据平均运行数据,可以对集群中的第一目标节点进行关机操作或开机操作,以便对集群中处于开机状态的节点数量进行调整,在业务量高峰期时增加开机的节点以便满足用户的需求,在业务量低谷期时减少开机的节点以便节省集群所需的能源,减少集群运营成本,解决了现有集群工作方法消耗的能源较多,浪费资源并提高运营成本的问题。
此外,本发明还提供了一种集群节点控制装置、集群节点控制设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种集群节点控制方法流程图;
图2为本发明实施例提供的一种控制条件判断方法流程图;
图3为本发明实施例提供的一种具体的目标操作执行方法流程图;
图4为本发明实施例提供的一种回滚操作执行方法流程图;
图5为本发明实施例提供的一种集群节点控制装置的结构示意图;
图6为本发明实施例提供的一种集群节点控制设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供的一种集群节点控制方法流程图。
该方法包括:
S101:获取集群中各个目标开机节点的运行数据,并利用运行数据计算平均运行数据;其中,目标开机节点为处于开机状态的目标节点。
在本发明实施例中,集群可以为Kubernetes容器集群(k8s集群),或者可以为其他分布式集群。目标节点为集群中参与节能策略的节点,具体可以为集群中的所有节点,也可以为集群中的部分节点,例如当集群为Kubernetes集群时,可以选用运行多副本任务的部分worker节点作为目标节点。需要说明的是,目标开机节点为处于开机状态的目标节点,即处于工作状态的目标节点。除此之外,目标节点还包括目标关机节点,即处于关机状态的目标节点。在本发明实施例中,可以选择集群中任意一台服务器、计算机或其他计算设备执行本发明提供的集群节点控制方法中的各个步骤,可以将其称为控制设备。
运行数据的获取可以按照预设周期进行,也可以实时进行。例如,可以设置策略冷却时间cold_down_time作为预设周期,例如可以设置cold_down_time=2小时。运行数据反映了目标开机节点的运行状态,各个目标开机节点均存在与自身对应的运行数据,其可以包括两次获取步骤之间所有时刻的运行数据,或者可以包括两次获取步骤之间部分时刻的运行数据,例如可以设置统计窗口长度time_range,例如当cold_down_time=2小时时,可以将time_range设置为1小时。
需要说明的是,运行数据的具体内容可以根据集群种类的不同、目标开机节点的不同以及人为设置的不同而有所差异,其具体内容本实施例不做限定。例如可以CPU利用率、内存利用率、pod数量、获取时间等。运行数据由目标开机节点发送,在控制设备接收到目标开机节点的运行数据后,利用各个目标开机节点对应的运行数据计算对应的平均运行数据。平均运行数据反映了所有目标开机节点的平均运行状态,例如各个目标开机节点的CPU平均利用率、内存平均利用率等。
进一步,为了保证运行重要任务的节点不受到影响,同时允许用户根据实际情况选择合适的节点执行任务,本发明实施例中优选的,选择集群中的部分节点参与节能策略。具体的,获取目标节点选择指令,对目标节点选择指令进行解析,得到对应的目标节点信息。目标节点信息可以为节点的编号信息,或者可以为节点的IP地址信息、MAC地址信息等。在获取目标节点信息后,对目标节点信息对应的节点进行标记处理,例如将其打上energy_saving_node标记,并将标记处理过后的节点确定为目标节点。在确定目标节点后,可以输出目标节点的信息,以便用户在部署任务时得知哪些节点为目标节点,进而根据自己的实际需求进行选择,例如将重要的任务部署在非目标节点上,将重要性一般的任务部署在目标节点上,防止节能策略影响到重要任务的进行。
S102:判断平均运行数据是否满足预设控制条件;其中,预设控制条件包括预设关机条件和预设开机条件。
在获取平均运行数据后,判断平均运行数据是否满足预设控制条件。需要说明的是,预设控制条件包括预设关机条件和预设开机条件,用于判断集群中目标节点的平均运行状态是否能否符合节能和正常业务要求,即既能尽量减少开机的节点数以节省能源,又能满足正常业务的需求。
在本发明实施例中,预设控制条件的具体内容可以根据实际需求进行设置,例如可以将CPU平均利用率的上限值和下限值确定为预设控制条件;或者可以将运行数据平均获取时间的不同特定时刻确定为预设控制条件;或者可以将内存平均利用率的上限值和下限值确定为预设控制条件;或者可以利用逻辑运算符将多个条件进行组合,得到预设控制条件。例如可以将CPU平均利用率的上限值以及内存平均利用率的上限值利用“或”运算进行组合,得到预设控制条件。当平均运行数据满足预设控制条件时,可以进入S103步骤;当平均运行数据不满足预设控制条件时,可以进入S104步骤,即执行预设操作,预设操作的具体内容本实施例不做限定,例如可以为无操作,即不执行任何操作。
S103:对第一目标节点执行预设控制条件对应的目标操作;其中,目标操作为节点关机操作或节点开机操作。
若平均运行数据满足预设控制条件,则对第一目标节点执行预设控制条件对应的目标操作。第一目标节点为多个目标节点中的一个或多个,其具体数量本实施例不做限定,例如可设置策略步长step_count,将策略步长设置为第一目标节点的数量,例如step_count=1。第一目标节点具体为哪一个或哪多个目标节点本实施例不做限定。需要说明的是,第一目标节点的具体种类与预设控制条件以及目标操作相对应。由于预设控制条件包括预设关机条件和预设关机条件,因此预设控制条件对应的目标操作则为节点关机操作或节点开机操作。即当预设控制条件为预设关机条件时,对应的目标操作即为节点关机操作;当预设控制条件为预设开机条件时,对应的目标操作即为节点开机操作。根据满足的预设控制条件的不同执行对应的目标操作,可以在满足预设关机条件时对集群中的某一目标节点,即第一目标节点,进行关机操作,进而避免因处于开机状态的节点过多导致的资源浪费。同时可以在满足预设开机条件时对集群中的某一目标节点进行开机操作,防止集群的正常业务受到影响。
具体的,在确定平均运行信息满足的预设控制条件后,根据预设控制条件确定第一目标节点,例如当满足的预设控制条件为预设关机条件时,对应的目标操作为关机操作,则需要对处于开机状态的目标节点进行关机操作,因此可以在目标开机节点中随机选择一个或多个作为第一目标节点;或者可以将pod数量最少的目标开机节点确定为第一目标节点;或者可以将工作时长最长的目标开机节点确定为第一目标节点。或者当满足的预设控制条件为预设开机条件时,对应的目标操作为开机操作,则需要对处于关机状态的目标节点进行关机操作,因此可以在目标关机节点中随机选择一个或多个作为第一目标节点,具体的选择方式本实施例不做限定。在确定第一目标节点和目标操作的具体内容后,对第一目标节点执行预设控制条件对应的目标操作,以便对集群节点进行控制。
进一步,还可以获取参数设置指令,按照参数设置指令设置对应的参数,例如策略步长、策略冷却时间等,以便在执行预设操作时,按照参数对第一目标节点执行预设控制条件对应的预设操作。使控制人员可以根据实际情况调整节能策略。
应用本发明实施例提供的集群节点控制方法,获取目标开机节点的运行数据计算得到平均运行数据,并判断平均运行数据是否满足预设控制条件。由于集群在实际业务运行时会存在业务量高峰期和业务量低谷期,因此计算得到的平均运行数据可能满足预设控制条件。在确定平均运行数据满足预设控制条件时,根据预设控制条件的具体内容不同,执行对应的目标操作,即当预设控制条件为预设关机条件时,目标操作为节点关机操作,预设控制条件为预设开机条件时,目标操作为节点开机操作。根据平均运行数据,可以对集群中的第一目标节点进行关机操作或开机操作,以便对集群中处于开机状态的节点数量进行调整,在业务量高峰期时增加开机的节点以便满足用户的需求,在业务量低谷期时减少开机的节点以便节省集群所需的能源,减少集群运营成本,解决了现有集群工作方法消耗的能源较多,浪费资源并提高运营成本的问题。
基于上述发明实施例,本发明实施例提供了一种具体的预设控制条件是否满足的判断方法。请参考图2,图2为本发明实施例提供的一种控制条件判断方法流程图,包括:
S201:判断平均运行数据是否处于第一预设区间。
在本发明实施例中设置有第一预设区间和第二预设区间,由于平均运行数据中可以包括多个数据项,因此与平均运行数据相对应的第一预设区间可以包括多个第一子区间,第二预设区间可以包括多个第二子区间,各个数据项、各个第一子区间和各个第二子区间相互对应。例如平均运行数据可以包括CPU平均利用率和内存平均利用率,则第一预设区间可以包括CPU平均最小值cpu_average_down和0%以及内存平均最小值mem_average_down和0%组成的两个第一子区间,第二预设区间可以包括CPU平均最大值cpu_average_up和100%以及内存平均最大值mem_average_up和100%组成的两个第二子区间。各个第一子区间之间可以采用或关系进行组合以组成第一预设区间,各个第二子区间也可以采用或关系进行组合以组成第二预设区间。当平均运行数据处于第一预设区间时,可以进入S202步骤;当平均运行数据不处于第一预设区间时,可以进入S203步骤。
例如,可以进行如下设置:cpu_average_down=30%,cpu_average_up=60%,mem_average_down=30%,mem_average_up=60%。即当平均运行数据中的CPU平均利用率处于0%~30%中或内存平均利用率处于0%~30%中时,则确定平均运行数据处于第一预设区间,则可以进入步骤S202。
S202:确定平均运行数据满足预设关机条件。
当平均运行数据处于第一预设区间时,说明集群中各个目标开机节点的任务量较小,因此可以关闭一个或多个目标开机节点以节省整个集群消耗的能源,因此确定平均运行数据满足预设关机条件。
S203:判断平均运行数据是否处于第二预设区间。
当平均运行数据不处于第一预设区间时,则可以判断平均运行数据是否处于第二预设区间,具体判断方法与S201步骤中的判断方法类似。在确定平均运行数据处于第二预设区间时,可以进入S204步骤;当确定平均运行数据不处于第二预设区间时,可以进入S205步骤,即执行预设操作,预设操作的具体呢日用本实施例不做限定,例如可以为无操作,既不执行任何操作。
具体的,当平均运行数据包括CPU平均利用率和内存平均利用率,且进行了如下设置时:cpu_average_down=30%,cpu_average_up=60%,mem_average_down=30%,mem_average_up=60%,第二预设区间则包括CPU平均最大值cpu_average_up和100%以及内存平均最大值mem_average_up和100%组成的两个第二子区间。因此当平均运行数据中的CPU平均利用率处于60%~100%中或内存平均利用率处于60%~100%中时,则确定平均运行数据处于第二预设区间,则可以进入S204步骤。
S204:确定平均运行数据满足预设开机条件。
当平均运行数据处于第二预设区间时,则说明各个目标开机节点中的任务较多,为了保证集群正常业务的运行,需要选择目标关机节点进行开机以便执行集群中的任务,因此确定平均运行数据满足预设开机条件。
进一步,有些集群的业务高峰期以及业务低谷期具有很强的时间规律,例如12306或者购票业务。对于这些集群,可以采用时间判断的方法判断是否满足预设控制条件,具体包括:
步骤1:判断平均运行数据对应的当前时刻是否为第一时刻。
其中,第一时刻可以为业务低谷期开始时刻,或者可以为业务高峰期结束时刻。
步骤2:若当前时刻为第一时刻,则确定平均运行数据满足预设关机条件。
步骤3:若当前时刻不为第一时刻,则判断当前时刻是否为第二时刻。
其中,第二时刻可以为业务高峰期开始时刻,或者可以为业务高峰期结束时刻。
步骤4:若当前时刻为第二时刻,则确定平均运行数据满足预设开机条件。
应用本发明实施例提供的集群节点控制方法,可以根据集群的实际情况,采用定时节能策略或动态节能策略,定时节能策略采用时间判断的方法决定执行目标操作的内容和时间,判断条件简单。动态节能策略根据平均运行数据的具体内容和预设的第一预设区间和第二预设区间决定执行目标操作的内容和时间,可以根据集群的具体情况进行调整,判断条件比较复杂,集群控制效果较好。
基于上述发明实施例,本发明实施例将说明一种具体的目标操作执行方法。请参考图3,图3为本发明实施例提供的一种具体的目标操作执行方法流程图,包括:
S301:调用IPMI接口对第一目标节点进行开机操作,并通过k8s接口对第一目标节点发送uncordon指令,以便将第一目标节点设置为可调度状态。
S301步骤为节点开机操作,在本发明实施例中,集群为kubernetes集群即k8s集群。在确定预设操作为节点开机操作时,调用IPMI接口对第一目标节点进行开机操作。需要说明的是,在对节点进行节点关机操作时,为了避免在进行节点关机操作的过程中又被集群调度用来进行新的pod创建,保证业务的稳定性,需要将第一目标节点设置为不可调度状态,因此在调用IPMI接口对第一目标节点进行开机操作后,需要通过k8s接口向第一目标节点发送uncordon指令,以便将第一目标节点设置为可调度状态,接收集群对第一目标节点的调度。IPMI(Intelligent Platform Management Interface,智能平台管理接口)是一种开放标准的硬件管理接口规格,通过基板管理控制器(Baseboard ManagementController,BMC)对服务器进行监控和管理操作。pod为kubernetes集群管理的最小资源单位,由若干个container进程组合而成。
S302:通过k8s接口对第一目标节点发送cordon指令,以便将第一目标节点设置为不可调度状态。
S302步骤至S307步骤为节点关机操作,在确定预设操作为节点关机操作时,通过k8s接口对第一目标节点发送cordon指令,以便将第一目标节点设置为不可调度状态,避免在进行节点关机操作的过程中又被集群调度用来进行新的pod创建。
S303:获取第一目标节点对应的pod列表。
在将第一目标节点设置为不可调度状态之后,获取第一目标节点对应的pod列表,pod列表中记录了第一目标节点上的所有已创建的pod,当第一目标节点为多个时,需要获取各个第一目标节点对应的pod列表。
S304:通过k8s接口向第一目标节点发送drain指令,以便将第一目标节点上的pod疏散至其他节点;其中,其他节点为集群中除第一目标节点以外的任意目标开机节点。
drain指令用于清空节点上的pod并在其他节点重建,通过k8s接口向第一目标节点发送drain指令后,可以将第一目标节点上的pod疏散至其他节点,其他节点为集群中除第一目标节点以外的任意处于开机状态的节点,即任意目标开机节点,其可以为一个节点,或者可以为多个节点。当第一目标节点有多个时,由于各个第一目标节点均处于不可调度状态,因此在疏塞某个第一目标节点上的pod时,这些pod也不会在其他的第一目标节点上重建。
S305:利用pod列表判断第一目标节点上是否还存在pod。
再将第一目标节点疏散完毕后,利用pod列表判断第一目标节点上是否还存在pod,例如可以进行一一比对,判断pod是否还存在。当确定第一目标节点上不存在pod时,可以进入S306步骤;当确定第一目标节点上还存在pod时,可以进入S308步骤。
S306:利用pod列表判断pod是否在其他节点上启动成功。
当确定第一目标节点上不存在pod时,说明pod已被疏散完毕。为了保证业务不受影响,需要确定pod在其他节点上成功启动,因此利用pod列表判断pod是否在其他节点上启动成功,例如可以利用pod列表与其他节点上的pod进行比对,当检测到其他节点上的某一pod与pod列表上的信息相匹配时,说明启动成功。当确定所有pod均在其他节点上启动成功时,可以进入S307步骤;当有pod在其他节点上没有启动成功时,可以进入S308步骤。
S307:调用IPMI接口将第一目标节点关机。
在确定pod列表中的pod在其他节点上启动成功时,可以调用IPMI接口将第一目标节点关机,具体的调用过程可以参考相关技术,本实施例对此不做限定。
S308:预设操作。
在第一目标节点上的pod疏散失败或pod列表中的pod在其他节点上启动失败时,可以执行预设操作,即当节点关机操作发生故障时,执行预设操作,本实施例并不限定预设操作的具体内容,例如可以输出故障告警。优选的,为了保证业务的正常进行,在节点关机操作发送故障后,可以执行回滚操作,以防止pod疏散失败时也将第一目标节点进行关机,保证集群中业务的平稳进行。具体的,可以参考图4,图4为本发明实施例提供的一种回滚操作执行方法流程图,包括:
S3081:通过k8s接口对第一目标节点发送uncordon指令,以便将第一目标节点设置为可调度状态。
在确定pod疏散失败后,将第一目标节点设置为可调度状态,以便在第一目标节点上重新创建pod。
S3082:恢复第一目标节点上的pod。
具体的,可以按照pod列表在第一目标节点上创建pod,以便恢复第一目标节点上的pod。
下面对本发明实施例提供的集群节点控制装置进行介绍,下文描述的集群节点控制装置与上文描述的集群节点控制方法可相互对应参照。
请参考图5,图5为本发明实施例提供的一种集群节点控制装置的结构示意图,包括:
获取模块510,用于获取集群中各个目标开机节点的运行数据,并利用运行数据计算平均运行数据;其中,目标开机节点为处于开机状态的目标节点;
判断模块520,用于判断平均运行数据是否满足预设控制条件;其中,预设控制条件包括预设关机条件和预设开机条件;
执行模块530,用于若平均运行数据满足预设控制条件,则对第一目标节点执行预设控制条件对应的目标操作;其中,目标操作为节点关机操作或节点开机操作。
可选地,执行模块530,包括:
第一设置单元,用于调用IPMI接口对第一目标节点进行开机操作,并通过k8s接口对第一目标节点发送uncordon指令,以便将第一目标节点设置为可调度状态。
可选地,执行模块530,包括:
第二设置单元,用于通过k8s接口对第一目标节点发送cordon指令,以便将第一目标节点设置为不可调度状态;
列表获取单元,用于获取第一目标节点对应的pod列表;
疏散单元,用于通过k8s接口向第一目标节点发送drain指令,以便将第一目标节点上的pod疏散至其他节点;其中,其他节点为集群中除第一目标节点以外的任意目标开机节点;
存在判断单元,用于利用pod列表判断第一目标节点上是否还存在pod;
启动判断单元,用于若第一目标节点上不存在pod,则利用pod列表判断pod是否在其他节点上启动成功;
调用单元,用于若pod在其他节点上启动成功,则调用IPMI接口将第一目标节点关机。
可选地,包括:
可调度设置模块,用于通过k8s接口对第一目标节点发送uncordon指令,以便将第一目标节点设置为可调度状态;
恢复模块,用于恢复第一目标节点上的pod。
可选地,判断模块520,包括:
第一判断单元,用于判断平均运行数据是否处于第一预设区间;
第一确定单元,用于若平均运行数据处于第一预设区间,则确定平均运行数据满足预设关机条件;
第二判断单元,用于若平均运行数据不处于第一预设区间,则判断平均运行数据是否处于第二预设区间;
第二确定单元,用于若平均运行数据处于第二预设区间,则确定平均运行数据满足预设开机条件。
可选地,判断模块520,包括:
第三判断单元,用于判断平均运行数据对应的当前时刻是否为第一时刻;
第三确定单元,用于若当前时刻为第一时刻,则确定平均运行数据满足预设关机条件;
第四判断单元,用于若当前时刻不为第一时刻,则判断当前时刻是否为第二时刻;
第四确定单元,用于若当前时刻为第二时刻,则确定平均运行数据满足预设开机条件。
可选的,还包括:
指令获取模块,用于获取参数设置指令,按照参数设置指令设置对应的参数;
相应的,执行模块530为按照参数对第一目标节点执行预设控制条件对应的目标操作的模块。
下面对本发明实施例提供的集群节点控制设备进行介绍,下文描述的集群节点控制设备与上文描述的集群节点控制方法可相互对应参照。
请参考图6,图6为本发明实施例提供的一种集群节点控制设备的结构示意图,该集群节点控制设备包括存储器、处理器,其中:
存储器610,用于保存计算机程序;
处理器620,用于执行计算机程序,以实现上述的集群节点控制方法。
下面对本发明实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的集群节点控制方法可相互对应参照。
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的集群节点控制方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上对本发明所提供的一种集群节点控制方法、集群节点控制装置、集群节点控制设备及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种集群节点控制方法,其特征在于,包括:
获取集群中各个目标开机节点的运行数据,并利用所述运行数据计算平均运行数据;其中,所述目标开机节点为处于开机状态的目标节点;
判断所述平均运行数据是否满足预设控制条件;其中,所述预设控制条件包括预设关机条件和预设开机条件;
若所述平均运行数据满足所述预设控制条件,则对第一目标节点执行所述预设控制条件对应的目标操作;其中,所述目标操作为节点关机操作或节点开机操作。
2.根据权利要求1所述的集群节点控制方法,其特征在于,当所述目标操作为所述节点开机操作时,所述对第一目标节点执行所述预设控制条件对应的目标操作,包括:
调用IPMI接口对所述第一目标节点进行开机操作,并通过k8s接口对所述第一目标节点发送uncordon指令,以便将所述第一目标节点设置为可调度状态。
3.根据权利要求1所述的集群节点控制方法,其特征在于,当所述目标操作为所述节点关机操作时,所述对第一目标节点执行所述预设控制条件对应的目标操作,包括:
通过k8s接口对所述第一目标节点发送cordon指令,以便将所述第一目标节点设置为不可调度状态;
获取所述第一目标节点对应的pod列表;
通过所述k8s接口向所述第一目标节点发送drain指令,以便将所述第一目标节点上的pod疏散至其他节点;其中,所述其他节点为所述集群中除第一目标节点以外的任意目标开机节点;
利用所述pod列表判断所述第一目标节点上是否还存在所述pod;
若所述第一目标节点上不存在所述pod,则利用所述pod列表判断所述pod是否在所述其他节点上启动成功;
若所述pod在所述其他节点上启动成功,则调用IPMI接口将所述第一目标节点关机。
4.根据权利要求3所述的集群节点控制方法,其特征在于,若所述pod没有在所述其他节点上启动成功,包括:
通过所述k8s接口对所述第一目标节点发送uncordon指令,以便将所述第一目标节点设置为可调度状态;
恢复所述第一目标节点上的所述pod。
5.根据权利要求1至4任一项所述的集群节点控制方法,其特征在于,所述判断所述平均运行数据是否满足预设控制条件,包括:
判断所述平均运行数据是否处于第一预设区间;
若所述平均运行数据处于所述第一预设区间,则确定所述平均运行数据满足所述预设关机条件;
若所述平均运行数据不处于所述第一预设区间,则判断所述平均运行数据是否处于第二预设区间;
若所述平均运行数据处于所述第二预设区间,则确定所述平均运行数据满足所述预设开机条件。
6.根据权利要求1至4任一项所述的集群节点控制方法,其特征在于,所述判断所述平均运行数据是否满足预设控制条件,包括:
判断所述平均运行数据对应的当前时刻是否为第一时刻;
若所述当前时刻为所述第一时刻,则确定所述平均运行数据满足所述预设关机条件;
若所述当前时刻不为所述第一时刻,则判断所述当前时刻是否为第二时刻;
若所述当前时刻为所述第二时刻,则确定所述平均运行数据满足所述预设开机条件。
7.根据权利要求5所述的集群节点控制方法,其特征在于,还包括:
获取参数设置指令,按照所述参数设置指令设置对应的参数;
相应的,所述对第一目标节点执行所述预设控制条件对应的目标操作,包括:
按照所述参数对所述第一目标节点执行所述预设控制条件对应的所述目标操作。
8.一种集群节点控制装置,其特征在于,包括:
获取模块,用于获取集群中各个目标开机节点的运行数据,并利用所述运行数据计算平均运行数据;其中,所述目标开机节点为处于开机状态的目标节点;
判断模块,用于判断所述平均运行数据是否满足预设控制条件;其中,所述预设控制条件包括预设关机条件和预设开机条件;
执行模块,用于若所述平均运行数据满足所述预设控制条件,则对第一目标节点执行所述预设控制条件对应的目标操作;其中,所述目标操作为节点关机操作或节点开机操作。
9.一种集群节点控制设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的集群节点控制方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的集群节点控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911332564.4A CN111147565B (zh) | 2019-12-22 | 2019-12-22 | 一种集群节点控制方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911332564.4A CN111147565B (zh) | 2019-12-22 | 2019-12-22 | 一种集群节点控制方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111147565A true CN111147565A (zh) | 2020-05-12 |
CN111147565B CN111147565B (zh) | 2023-01-24 |
Family
ID=70519278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911332564.4A Active CN111147565B (zh) | 2019-12-22 | 2019-12-22 | 一种集群节点控制方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147565B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651275A (zh) * | 2020-06-04 | 2020-09-11 | 山东汇贸电子口岸有限公司 | 一种MySQL集群自动化部署系统及方法 |
CN111917576A (zh) * | 2020-07-28 | 2020-11-10 | 星辰天合(北京)数据科技有限公司 | 存储集群的控制方法和装置 |
CN112422627A (zh) * | 2020-10-16 | 2021-02-26 | 鹏城实验室 | 一种物联网节点控制方法、装置、智能终端及存储介质 |
CN115408194A (zh) * | 2022-09-05 | 2022-11-29 | 摩尔线程智能科技(北京)有限责任公司 | Kubernetes节点故障修复方法及装置 |
CN116232781A (zh) * | 2022-12-08 | 2023-06-06 | 中国联合网络通信集团有限公司 | 节能方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593274A (zh) * | 2013-11-01 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种根据计算机集群资源使用情况动态开关机达到节约功耗的方法 |
CN106155805A (zh) * | 2015-04-14 | 2016-11-23 | 中兴通讯股份有限公司 | 系统内节点数的调整方法和装置 |
WO2018171392A1 (zh) * | 2017-03-24 | 2018-09-27 | 华为技术有限公司 | 一种虚拟机扩缩容方法及虚拟管理设备 |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
CN109783218A (zh) * | 2019-01-24 | 2019-05-21 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器集群的与时间相关联的容器调度方法 |
US20190306022A1 (en) * | 2018-03-29 | 2019-10-03 | Hewlett Packard Enterprise Development Lp | Container cluster management |
-
2019
- 2019-12-22 CN CN201911332564.4A patent/CN111147565B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593274A (zh) * | 2013-11-01 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种根据计算机集群资源使用情况动态开关机达到节约功耗的方法 |
CN106155805A (zh) * | 2015-04-14 | 2016-11-23 | 中兴通讯股份有限公司 | 系统内节点数的调整方法和装置 |
WO2018171392A1 (zh) * | 2017-03-24 | 2018-09-27 | 华为技术有限公司 | 一种虚拟机扩缩容方法及虚拟管理设备 |
US20190306022A1 (en) * | 2018-03-29 | 2019-10-03 | Hewlett Packard Enterprise Development Lp | Container cluster management |
CN109117265A (zh) * | 2018-07-12 | 2019-01-01 | 北京百度网讯科技有限公司 | 在集群中调度作业的方法、装置、设备及存储介质 |
CN109783218A (zh) * | 2019-01-24 | 2019-05-21 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器集群的与时间相关联的容器调度方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651275A (zh) * | 2020-06-04 | 2020-09-11 | 山东汇贸电子口岸有限公司 | 一种MySQL集群自动化部署系统及方法 |
CN111917576A (zh) * | 2020-07-28 | 2020-11-10 | 星辰天合(北京)数据科技有限公司 | 存储集群的控制方法和装置 |
CN111917576B (zh) * | 2020-07-28 | 2023-05-16 | 北京星辰天合科技股份有限公司 | 存储集群的控制方法、装置、计算机可读存储介质、处理器 |
CN112422627A (zh) * | 2020-10-16 | 2021-02-26 | 鹏城实验室 | 一种物联网节点控制方法、装置、智能终端及存储介质 |
CN115408194A (zh) * | 2022-09-05 | 2022-11-29 | 摩尔线程智能科技(北京)有限责任公司 | Kubernetes节点故障修复方法及装置 |
CN116232781A (zh) * | 2022-12-08 | 2023-06-06 | 中国联合网络通信集团有限公司 | 节能方法、装置及存储介质 |
CN116232781B (zh) * | 2022-12-08 | 2024-04-16 | 中国联合网络通信集团有限公司 | 节能方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111147565B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111147565B (zh) | 一种集群节点控制方法、装置、设备及可读存储介质 | |
CN111290834B (zh) | 一种基于云管理平台实现业务高可用的方法、装置及设备 | |
CN103324500B (zh) | 一种回收内存的方法及装置 | |
US8473768B2 (en) | Power control apparatus and method for cluster system | |
CN106068626B (zh) | 分布网络管理架构中的负载均衡 | |
EP3477894B1 (en) | Method and device for controlling virtualized broadband remote access server (vbras), and communication system | |
CN103188277A (zh) | 负载能耗管理系统、方法和服务器 | |
CN111625080B (zh) | 一种服务器节能方法、装置及电子设备和存储介质 | |
CN102025776A (zh) | 一种容灾控制方法、装置及系统 | |
CN104660522A (zh) | 自动节点配置方法及服务器系统 | |
US8473769B2 (en) | Efficient routing of computing tasks | |
CN103488538A (zh) | 云计算系统中的应用扩展装置和应用扩展方法 | |
US20170244252A1 (en) | Autonomous Operational Platform for Micro-Grid Energy Management | |
KR101608859B1 (ko) | 클라우드 기반의 지능형 전력제어 시스템 | |
Chen et al. | A live migration algorithm for virtual machine in a cloud computing environment | |
CN110471769B (zh) | 一种虚拟机的资源管理方法及装置 | |
CN111352815A (zh) | 一种服务器系统的性能均衡检测方法、系统及装置 | |
CN113075992B (zh) | 一种内存上电方法、装置、设备及计算机可读存储介质 | |
CN105281979A (zh) | 一种面向虚拟化应用平台的负载测试方法 | |
CN110989824B (zh) | 一种云平台的能耗管理方法、装置、设备及介质 | |
CN111124095A (zh) | 一种升级电源固件时电源运行状态检测方法及相关装置 | |
CN106210263B (zh) | 一种移动终端的关机方法、系统和移动终端 | |
CN110865873A (zh) | 一种虚拟机资源动态停机及恢复方法 | |
CN111198607A (zh) | 电子设备功耗管理方法与装置 | |
CN110310046B (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 |