一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种容器集群资源的定时伸缩方法及系统与流程

2022-05-11 11:59:30 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其是一种容器集群资源的定时伸缩方法及系统。


背景技术:

2.k8s(kubernetes)集群可以部署在物理机、裸机、虚拟机上,常见的是直接在物理机上装k8s,但随着虚拟化的兴起以及虚拟机的广泛应用,现在也渐渐部署到虚拟机上了。尤其是对于小型应用,以及规模较小的集群来说,部署在虚拟机上可以节省物理资源,提高资源效率。可以运行虚拟机的平台有很多,在容器平台上,我们采用了openstack。openstack是一个开源的云计算管理项目,为私有云和公有云提供可扩展的弹性的云计算服务。openstack在虚拟机管理上相当出色。openstack对虚拟机的整个生命周期管理都非常流畅,包括创建虚拟机、删除虚拟机、虚拟机开关机、虚拟机系统安装及配置等。
3.目前运行在虚拟机上的k8s集群可以自由的控制规模,可以根据需求随时进行扩缩容。对物理机的k8s集群来说,如果要扩缩容,则需要提前准备集群,安装好操作系统和k8s,然后再k8s集群的master节点进行配置才能扩容生效,缩容也是同样,移除一台主机,需要手工配置master节点,以使缩容生效。
4.虽然物理机有性能优势,但虚拟化的逐步发展,已补足了性能问题,现在再虚拟机上创建k8s集群已变得可行且通用。在虚拟机上使用k8s集群,可以不依赖物理环境,配置更加灵活,并且方便容灾,集群的规模也可以按需控制,可以说虚拟机上运行k8s集群更具有优势。然而对于集群的伸缩控制,目前还是基于人工实现,过程繁琐易出错。


技术实现要素:

5.本发明提供了一种容器集群资源的定时伸缩方法及系统,用于解决现有集群扩容依赖于人工操作,过程繁琐易出错的问题。
6.为实现上述目的,本发明采用下述技术方案:
7.本发明第一方面提供了一种容器集群资源的定时伸缩方法,所述方法包括以下步骤:
8.在容器平台创建定时任务,所述定时任务中包含定时规则、伸缩策略及参数;
9.设置所述定时任务的启动机制;
10.待到达预设的定时时间时,识别所述定时任务,并调用所述伸缩策略,对集群进行扩容或缩容。
11.进一步地,所述定时规则通过cron表达式记录,所述cron表达式内包括任务的执行时间和执行次数。
12.进一步地,所述伸缩策略包括扩容策略和缩容策略,所述扩容策略或缩容策略通过所述参数确定。
13.进一步地,所述设置所述定时任务的启动机制具体为:
14.将所述伸缩策略注册至任务管理模块,所述任务管理模块对伸缩策略进行完备性
检测,检测成功后,开启所述定时任务的启动机制。
15.进一步地,所述调用所述伸缩策略,对集群进行扩容具体为:
16.响应于容器平台发出的扩容请求,创建虚拟机,创建的所述虚拟机个数与扩容节点数量相适应,所述虚拟机与当前集群具有相同的镜像;
17.建立节点与创建虚拟机的对应关系,将扩容节点加入到集群中。
18.进一步地,所述创建的所述虚拟机个数与扩容节点数量相适应具体为:
19.一个虚拟机对应一个节点,或者一个虚拟机对应多个节点。
20.进一步地,所述调用所述伸缩策略,对集群进行缩容具体为:
21.响应于容器平台发出的缩容请求,删除所述缩容请求中规定的节点,将集群中剩余节点组成新的集群;
22.将删除节点对应的虚拟机删除,释放虚拟机所占资源。
23.本发明第二方面提供了一种容器集群资源的定时伸缩系统,包括容器平台,在所述容器平台上设置定时任务模块和集群管理模块;
24.所述定时任务模块用于在容器平台创建定时任务,并设置所述定时任务的启动机制;所述定时任务中包含定时规则、伸缩策略及参数;
25.所述集群管理模块在到达预设的定时时间时,识别所述定时任务,并调用所述伸缩策略,对集群进行扩容或缩容。
26.进一步地,所述系统还包括任务管理模块,所述任务管理模块用于所述定时任务的调度,包括执行时间、任务冲突和任务异常的调度,以及任务进度和任务状态的更新。
27.进一步地,所述定时任务包括一个或多个,当有多个定时任务时,多个定时任务异步执行。
28.本发明第二方面的所述网络服务的控制装置能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
29.发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
30.本发明通过设置定时任务并设置启动机制,定时任务中限定定时规则、伸缩策略等,在达到预设的定时时间时,基于伸缩策略,自动进行集群的扩容或缩容,实现了对集群资源的定时伸缩控制,使得业务集群能够随着需求而变化,极大的提高了系统的性能,提高了资源的利用率。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是本发明所述方法实施例的流程示意图;
33.图2是本发明实施例中k8s集群与openstack虚拟机的对应关系图;
34.图3是本发明所述系统实施例的结构示意图。
具体实施方式
35.为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
36.如图1所示,本发明实施例提供了一种容器集群资源的定时伸缩方法,包括以下步骤:
37.s1,在容器平台创建定时任务,所述定时任务中包含定时规则、伸缩策略及参数;
38.s2,设置所述定时任务的启动机制;
39.s3,待到达预设的定时时间时,识别所述定时任务,并调用所述伸缩策略,对集群进行扩容或缩容。
40.步骤s1中,所述定时规则通过cron表达式记录,所述cron表达式内包括任务的执行时间和执行次数,如在一个月内的每天8点执行定时任务。
41.所述伸缩策略包括扩容策略和缩容策略,所述扩容策略或缩容策略通过所述参数确定。
42.所述设置所述定时任务的启动机制具体为:
43.将所述伸缩策略注册至任务管理模块,所述任务管理模块对伸缩策略进行完备性检测,检测成功后,开启所述定时任务的启动机制。
44.步骤s3中,识别所述定时任务,触发定时任务。伸缩策略包括集群扩容和缩容。
45.调用所述伸缩策略,对集群进行扩容具体为:
46.响应于容器平台发出的扩容请求,使用openstack接口创建虚拟机,创建的所述虚拟机个数与扩容节点数量相适应,所述虚拟机与当前集群具有相同的镜像;
47.建立节点与创建虚拟机的对应关系,将扩容节点加入到集群中。
48.创建的所述虚拟机个数与扩容节点数量相适应具体为:一个虚拟机对应一个节点,或者一个虚拟机对应多个节点。
49.如图2所示,以一个虚拟机上部署一个k8s节点为例示意,一个虚拟机vm对应一个节点,或者一个虚拟机对应多个节点。节点可以是master节点,也可以是worker节点,图中一对一的关系,方便对节点进行管理。
50.调用所述伸缩策略,对集群进行缩容具体为:响应于容器平台发出的缩容请求,删除所述缩容请求中规定的节点,将集群中剩余节点组成新的集群;将删除节点对应的虚拟机删除,释放虚拟机所占资源。
51.缩容时,可以根据规则选择节点进行缩容,按最新加入最先删除的规则,也可以指定节点删除。
52.如图3所示,本发明实施例还提供了一种容器集群资源的定时伸缩系统,包括容器平台和openstack,在所述容器平台上设置定时任务模块1和集群管理模块2。
53.所述定时任务模块1用于在容器平台创建定时任务,并设置所述定时任务的启动机制;所述定时任务中包含定时规则、伸缩策略及参数。
54.所述集群管理模块2在到达预设的定时时间时,识别所述定时任务,并调用所述伸缩策略,对集群进行扩容或缩容。
55.所述系统还包括任务管理模块,所述任务管理模块用于所述定时任务的调度,包括执行时间、任务冲突和任务异常的调度,以及任务进度和任务状态的更新。
56.所述定时任务包括一个或多个,当有多个定时任务时,多个定时任务异步执行。
57.集群管理模块通过使用openstack的虚拟机进行扩缩容。其基本方法都在容器平台的集群管理模块,但任务管理模块不可以直接调用集群管理模块。因模块之间是解耦的,因此,需要在集群管理模块建立一个伸缩方法的入口,该入口方法能够被任务管理模块发现和调用,并可以注册在任务管理模块。在该入口方法里,根据不同的参数调用扩容方法还是缩容方法。
58.当多个任务执行时,首先执行的任务将集群状态置位忙碌,直到集群状态变为正常,才能继续执行新任务,这期间的所有任务都变成执行失败。这个过程没有任务阻塞,如果上一个任务没有执行完毕,那么后续到达执行时间的任务都会直接失败,直到正在执行的任务变为成功或失败。
59.上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献