一种云实例的扩缩容方法及其相关设备与流程

文档序号:34365827发布日期:2023-06-04 21:04阅读:45来源:国知局
一种云实例的扩缩容方法及其相关设备与流程

本技术涉及云,尤其涉及一种云实例的扩缩容方法及其相关设备。


背景技术:

1、随着技术的飞速发展,云服务系统的规模越来越大。云服务系统通常包含多个工作节点(worker)和管理节点(master),其中,每个工作节点上部署有多个容器(docker),管理节点可对所有容器进行集中管理。

2、目前,云服务系统以kubernetes作为容器的管理标准,可对容器实现编排部署、灰度升降级、自动扩缩容等功能。在自动伸缩功能中,kubernetes可支持两种自动两种自动伸缩方法,分别为垂直pod(容器组)自动伸缩(vertical pod autoscale,vpa)和水平pod自动伸缩(horizontal pod autoscale,hpa)。在vpa中,管理节点可基于某个工作节点中pod的资源占用率计算出pod的资源配额推荐值,并发送至该工作节点。当该工作节点创建pod时,可基于该推荐值为pod设置新的资源配额(例如,增大pod的资源配额或减小pod的资源配额,相当于扩容或缩容)。

3、前述过程中,由于修改pod的资源配额的时间点,只能在创建pod的时候。当需要修改某个pod的资源配额时,工作节点只能先释放该pod,并在重新创建该pod时才能实现资源配额的修改,这样会导致该pod运行的业务中断。


技术实现思路

1、本技术实施例提供了一种云实例的扩缩容方法及其相关设备,可在增大或减小云实例的资源配额时,确保云实例运行的业务不会中断。

2、本技术实施例的第一方面提供了一种云实例的扩缩容方法,该方法应用于云服务系统,云服务系统包含多个工作节点,也其中一个工作节点进行示意性介绍,并称该工作节点为第一工作节点,该方法包括:

3、第一工作节点部署有多个云实例,例如,多个云实例可以为多个容器,又如,多个云实例可以为多组容器,再如,多个云实例可以为多个虚拟机,还如,多个云实例可以为多组虚拟机等等。第一工作节点可获取这多个云实例的状态信息,每个云实例的状态信息可用于指示该云实例所运行的业务的状态。

4、得到多个云实例的状态信息后,第一工作节点可基于这多个云实例的状态信息,对这多个云实例逐个进行分析,从而在这多个云实例中确定待扩容的云实例以及对带扩容的云实例进行扩容所需的资源量。

5、第一工作节点可确定第一工作节点的空闲资源量,并检测第一工作节点的空闲资源量是否大于或等于扩容所需的资源量,若第一工作节点的空闲资源量大于或等于扩容所需的资源量,说明第一工作节点的空闲资源是充足的,故第一工作节点可直接对待扩容的云实例直接进行扩容处理,即基于扩容所需的资源量,增大待扩容的云实例的资源配额,从而实现云实例的扩容。

6、从上述方法可以看出:第一工作节点在获取多个云实例的状态信息后,可基于这部分状态信息,在多个云实例中确定待扩容的云实例以及扩容所需的资源量。若第一工作节点的空闲资源量大于或等于扩容所需的资源量,第一工作节点可基于扩容所需的资源量,增大待扩容的云实例的资源配额。基于前述过程可知,本技术提供了一种新的云实例扩容机制,第一工作节点自行确定待扩容的云实例后,可通过实时修改cgroup配置,以增大待扩容的云实例的资源配额,这对于待扩容的云实例运行的业务而言,是不感知的,故不会导致待扩容的云实例运行的业务中断。

7、在一种可能的实现方式中,第一工作节点基于状态信息,在多个云实例中确定待扩容的第一云实例以及扩容所需的扩容所需的资源量包括:在多个云实例中,第一工作节点将状态信息满足预置的扩容条件的云实例确定为待扩容的云实例;第一工作节点基于待扩容的云实例的状态信息,确定扩容所需的扩容所需的资源量。前述实现方式中,对于多个云实例中的任意一个云实例,第一工作节点可检测该云实例的状态信息是否满足预置的扩容条件,若满足,则确定需要进行扩容,即将该云实例确定为待扩容的云实例,若不满足,则确定该云实例不需要进行扩容,结束操作。在将该云实例确定为待扩容的云实例后,还可基于该云实例的状态信息准确计算出该云实例扩容所需的资源量。

8、在一种可能的实现方式中,云服务系统还包含第二工作节点,该方法还包括:若第一工作节点的空闲资源量小于扩容所需的资源量,第一工作节点在多个云实例中确定待迁移的云实例,待迁移的云实例运行的业务的优先级低于预置的优先级;第一工作节点将待迁移的云实例迁移至第二工作节点,以更新第一工作节点的空闲资源量;若更新后的第一工作节点的空闲资源量大于或等于扩容所需的资源量,第一工作节点基于扩容所需的资源量,增大待扩容的云实例的资源配额。前述实现方式中,若第一工作节点的空闲资源量小于该云实例扩容所需的资源量,说明第一工作节点的空闲资源是不足的,第一工作节点可在第一工作节点的多个云实例中,确定至少一个待迁移的云实例,这些待迁移的云实例运行的业务的优先级低于预置的优先级(即这些云实例所运行的业务往往优先级较低),故可将这些待迁移的云实例迁移至第二工作节点,那么,第一工作节点中被分配至这些待迁移的云实例的资源被释放,成为新的空闲资源,从而更新了第一工作节点的空闲资源量(即增大了第一工作节点的空闲资源量)。然后,第一工作节点可检测更新后的第一工作节点的空闲资源量是否大于或等于扩容所需的资源量,若更新后的第一工作节点的空闲资源量大于或等于该云实例(待扩容的云实例)扩容所需的资源量,说明更新后的第一工作节点的空闲资源是充足的,可利用这部分资源直接对该云实例进行扩容,故第一工作节点可基于该云实例扩容所需的资源量,增大该云实例的资源配额,从而实现云实例的扩容。

9、在一种可能的实现方式中,云服务系统还包含第三工作节点,该方法还包括:若更新后的第一工作节点的空闲资源量小于扩容所需的资源量,第一工作节点检测待扩容的云实例运行的业务的类型;若待扩容的云实例运行的业务为无状态应用,第一工作节点在第三工作节点处创建新的云实例,新的云实例和待扩容的云实例共同用于运行无状态应用;若待扩容的云实例运行的业务为有状态应用,第一工作节点将待扩容的云实例迁移至第三工作节点。前述实现方式中,若更新后的第一工作节点的空闲资源量小于该云实例(待扩容的云实例)扩容所需的资源量,说明更新后的第一工作节点的空闲资源是不足的,第一工作节点可先检测该云实例运行的业务(也可以理解为该云实例运行的应用)的类型,以基于该云实例运行的业务类型进行相应的处理:若该云实例运行的业务为无状态应用,第一工作节点可申请在第三工作节点处创建新的云实例,那么,该云实例和新的云实例可共同运行该云实例原先所运行的业务,也就相当于实现了扩容。若该云实例运行的业务为有状态应用,节点代理可将该云实例迁移至在第三工作节点,其中,第三工作节点的空闲资源量大于或等于该云实例扩容所需的资源量,那么,在将该云实例迁移至第三工作节点后,可增大该云实例的资源配额,也就相当于完成了扩容。

10、在一种可能的实现方式中,状态信息包括以下至少一种:资源占用率、负载程度和业务成功率。可见,云实例的状态信息与云实例的业务逻辑相关。

11、在一种可能的实现方式中,预置的扩容条件包括以下至少一种:资源占用率大于或等于预置的第一资源占用率、负载程度大于或等于预置的第一负载程度和业务成功率小于预置的第一业务成功率。在vpa中,仅根据云实例的资源占用率来检测云实例是否需要进行扩容,无法深入了解业务需求,需要多次检测才能精准确定云实例是否需要扩容,耗费了较长的时间在检测上。前述实现方式可基于云实例的状态信息来检测云实例是否需要扩容,由于云实例的状态信息包含云实例的资源占用率、负载程度以及业务成功率等信息,故云实例的状态信息与云实例的业务逻辑相关,更能体现业务需求,故工作节点基于云实例的状态信息,可实时感应业务需求,并基于业务需求准确检测云实例是否需要扩容,可有效减少检测的次数,从而缩短检测时长。

12、在一种可能的实现方式中,将待扩容的云实例迁移至第三工作节点的方式为冷迁移或热迁移。

13、在一种可能的实现方式中,云服务系统还包含管理节点,第一工作节点增大待扩容的云实例的资源配额之后,该方法还包括:第一工作节点将待扩容的云实例的资源配额发送至管理节点。前述实现方式中,第一工作节点对待扩容的云实例的资源配额进行增大后,可将增大后的该云实例的资源配额发送至管理节点,故管理节点和第一工作节点可同步该云实例的资源配额,使得全局(即整个云服务系统)资源配置信息准确一致。

14、本技术实施例的第二方面提供了一种云实例的缩容方法,该方法应用于云服务系统,云服务系统包含第一工作节点,该方法包括:

15、第一工作节点部署有多个云实例,例如,多个云实例可以为多个容器,又如,多个云实例可以为多组容器,再如,多个云实例可以为多个虚拟机,还如,多个云实例可以为多组虚拟机等等。第一工作节点可获取这多个云实例的状态信息,每个云实例的状态信息可用于指示该云实例所运行的业务的状态。

16、得到多个云实例的状态信息后,第一工作节点可基于这多个云实例的状态信息,对这多个云实例逐个进行分析,从而在这多个云实例中确定待缩容的云实例。

17、确定待缩容的云实例后,第一工作节点可确定待缩容的云实例中的非空闲资源和空闲资源,并释放待缩容的云实例的空闲资源,并计算这部分被释放的资源大小,即确定被释放的待缩容的云实例的空闲资源量。那么,第一工作节点可基于待缩容的云实例的空闲资源量,减小待缩容的云实例的资源配额,从而实现云实例的缩容。

18、从上述方法可以看出:在获取多个云实例的状态信息后,第一工作节点可基于这些状态信息,在多个云实例中确定待缩容的云实例。然后,第一工作节点释放待缩容的云实例的空闲资源,并确定被释放的待缩容的云实例的空闲资源量。最后,第一工作节点可基于待缩容的云实例的空闲资源量,减小待缩容的云实例的资源配额。基于前述过程可知,本技术提供了一种新的云实例缩容机制,第一工作节点自行确定待缩容的云实例后,可通过实时修改cgroup配置,以减小待缩容的云实例的资源配额,这对于待缩容的云实例运行的业务而言,是不感知的,故不会导致待缩容的云实例运行的业务中断。

19、在一种可能的实现方式中,第一工作节点基于状态信息,在多个云实例中确定待缩容的云实例包括:在多个云实例中,第一工作节点将状态信息满足预置的缩容条件的云实例确定为待缩容的云实例。前述实现方式中,对于多个云实例中的任意一个云实例,第一工作节点可检测该云实例的状态信息是否满足预置的缩容条件,若满足,则确定需要进行缩容,即将该云实例确定为待缩容的云实例,若不满足,则确定该云实例不需要进行缩容,结束操作。

20、在一种可能的实现方式中,状态信息包括以下至少一种:资源占用率、负载程度和业务成功率。可见,云实例的状态信息与云实例的业务逻辑相关。

21、在一种可能的实现方式中,预置的缩容条件包括以下至少一种:资源占用率小于预置的第二资源占用率、负载程度小于预置的第二负载程度和业务成功率大于或等于预置的第二业务成功率。在vpa中,仅根据云实例的资源占用率来检测云实例是否需要进行缩容,无法深入了解业务需求,需要多次检测才能精准确定云实例是否需要缩容,耗费了较长的时间在检测上。前述实现方式可基于云实例的状态信息来检测云实例是否需要缩容,由于云实例的状态信息包含云实例的资源占用率、负载程度以及业务成功率等信息,故云实例的状态信息与云实例的业务逻辑相关,更能体现业务需求,故工作节点基于云实例的状态信息,可实时感应业务需求,并基于业务需求准确检测云实例是否需要缩容,可有效减少检测的次数,从而缩短检测时长。

22、在一种可能的实现方式中,云服务系统还包含管理节点,第一工作节点基于待缩容的云实例的空闲资源量,减小待缩容的云实例的资源配额之后,该方法还包括:第一工作节点将待缩容的云实例的资源配额发送至管理节点。前述实现方式中,第一工作节点对该云实例的资源配额进行减小后,可将减小后的该云实例的资源配额发送至管理节点,故管理节点和第一工作节点可同步该云实例的资源配额,使得全局(即整个云服务系统)资源配置信息准确一致。

23、本技术实施例的第三方面提供了一种工作节点,工作节点作为第一工作节点,第一工作节点设置于云服务系统中,第一工作节点部署有多个云实例,第一工作节点包括:获取模块,用于获取多个云实例的状态信息;第一确定模块,用于基于状态信息,在多个云实例中确定待扩容的云实例以及扩容所需的资源量;第一调整模块,用于若第一工作节点的空闲资源量大于或等于扩容所需的资源量,基于扩容所需的资源量,增大待扩容的云实例的资源配额。

24、从上述工作节点可以看出:第一工作节点在获取多个云实例的状态信息后,可基于这部分状态信息,在多个云实例中确定待扩容的云实例以及扩容所需的资源量。若第一工作节点的空闲资源量大于或等于扩容所需的资源量,第一工作节点可基于扩容所需的资源量,增大待扩容的云实例的资源配额。基于前述过程可知,本技术提供了一种新的云实例扩容机制,第一工作节点自行确定待扩容的云实例后,可通过实时修改cgroup配置,以增大待扩容的云实例的资源配额,这对于待扩容的云实例运行的业务而言,是不感知的,故不会导致待扩容的云实例运行的业务中断。

25、在一种可能的实现方式中,第一确定模块,用于:在多个云实例中,第一工作节点将状态信息满足预置的扩容条件的云实例确定为待扩容的云实例;基于待扩容的云实例的状态信息,确定扩容所需的扩容所需的资源量。

26、在一种可能的实现方式中,云服务系统还包含第二工作节点,第一工作节点还包括:第二确定模块,用于若第一工作节点的空闲资源量小于扩容所需的资源量,在多个云实例中确定待迁移的云实例,待迁移的云实例运行的业务的优先级低于预置的优先级;第一迁移模块,用于将待迁移的云实例迁移至第二工作节点,以更新第一工作节点的空闲资源量;第二调整模块,用于若更新后的第一工作节点的空闲资源量大于或等于扩容所需的资源量,基于扩容所需的资源量,增大待扩容的云实例的资源配额。

27、在一种可能的实现方式中,云服务系统还包含第三工作节点,第一工作节点还包括:检测模块,用于若更新后的第一工作节点的空闲资源量小于扩容所需的资源量,第一工作节点检测待扩容的云实例运行的业务的类型;创建模块,用于若待扩容的云实例运行的业务为无状态应用,在第三工作节点处创建新的云实例,新的云实例和待扩容的云实例共同用于运行无状态应用;第二迁移模块,用于若待扩容的云实例运行的业务为有状态应用,将待扩容的云实例迁移至第三工作节点。

28、在一种可能的实现方式中,状态信息包括以下至少一种:资源占用率、负载程度和业务成功率。

29、在一种可能的实现方式中,预置的扩容条件包括以下至少一种:资源占用率大于或等于预置的第一资源占用率、负载程度大于或等于预置的第一负载程度和业务成功率小于预置的第一业务成功率。

30、在一种可能的实现方式中,前述的迁移为冷迁移或热迁移。

31、在一种可能的实现方式中,云服务系统还包含管理节点,第一工作节点还包括:反馈模块,用于将待扩容的云实例的资源配额发送至管理节点。

32、本技术实施例的第四方面提供了一种工作节点,工作节点作为第一工作节点,第一工作节点设置于云服务系统中,第一工作节点部署有多个云实例,第一工作节点包括:获取模块,用于获取多个云实例的状态信息;确定模块,用于基于状态信息,在多个云实例中确定待缩容的云实例;释放模块,用于释放待缩容的云实例的空闲资源,并确定被释放的待缩容的云实例的空闲资源量;调整模块,用于基于待缩容的云实例的空闲资源量,减小待缩容的云实例的资源配额。

33、从上述工作节点可以看出:在获取多个云实例的状态信息后,第一工作节点可基于这些状态信息,在多个云实例中确定待缩容的云实例。然后,第一工作节点释放待缩容的云实例的空闲资源,并确定被释放的待缩容的云实例的空闲资源量。最后,第一工作节点可基于待缩容的云实例的空闲资源量,减小待缩容的云实例的资源配额。基于前述过程可知,本技术提供了一种新的云实例缩容机制,第一工作节点自行确定待缩容的云实例后,可通过实时修改cgroup配置,以减小待缩容的云实例的资源配额,这对于待缩容的云实例运行的业务而言,是不感知的,故不会导致待缩容的云实例运行的业务中断。

34、在一种可能的实现方式中,确定模块,用于在多个云实例中,将状态信息满足预置的缩容条件的云实例确定为待缩容的云实例。

35、在一种可能的实现方式中,状态信息包括以下至少一种:资源占用率、负载程度和业务成功率。

36、在一种可能的实现方式中,预置的缩容条件包括以下至少一种:资源占用率小于预置的第二资源占用率、负载程度小于预置的第二负载程度和业务成功率大于或等于预置的第二业务成功率。

37、在一种可能的实现方式中,云服务系统还包含管理节点,第一工作节点还包括:反馈模块,用于将待扩容的云实例的资源配额发送至管理节点。

38、本技术实施例的第五方面提供了一种工作节点,该工作节点包括存储器和处理器;存储器存储有代码,处理器被配置为执行代码,当代码被执行时,工作节点执行如第一方面、第一方面的任意一种可能的实现方式、第二方面或第二方面的任意一种可能的实现方式所述的方法。

39、本技术实施例的第六方面提供了一种计算机存储介质,计算机存储介质存储有一个或多个指令,指令在由一个或多个计算机执行时使得一个或多个计算机实施如第一方面、第一方面的任意一种可能的实现方式、第二方面或第二方面的任意一种可能的实现方式所述的方法。

40、本技术实施例的第七方面提供了一种计算机程序产品,计算机程序产品存储有指令,指令在由计算机执行时,使得计算机实施如第一方面、第一方面的任意一种可能的实现方式、第二方面或第二方面的任意一种可能的实现方式所述的方法。

41、本技术实施例中,在获取多个云实例的状态信息后,第一工作节点可基于这些状态信息,在多个云实例中确定待缩容的云实例。然后,第一工作节点释放待缩容的云实例的空闲资源,并确定被释放的待缩容的云实例的空闲资源量。最后,第一工作节点可基于待缩容的云实例的空闲资源量,减小待缩容的云实例的资源配额。基于前述过程可知,本技术提供了一种新的云实例缩容机制,第一工作节点自行确定待缩容的云实例后,可通过实时修改cgroup配置,以减小待缩容的云实例的资源配额,这对于待缩容的云实例运行的业务而言,是不感知的,故不会导致待缩容的云实例运行的业务中断。

42、此外,本技术实施例中,在获取多个云实例的状态信息后,第一工作节点可基于这些状态信息,在多个云实例中确定待缩容的云实例。然后,第一工作节点释放待缩容的云实例的空闲资源,并确定被释放的待缩容的云实例的空闲资源量。最后,第一工作节点可基于待缩容的云实例的空闲资源量,减小待缩容的云实例的资源配额。基于前述过程可知,本技术提供了一种新的云实例缩容机制,第一工作节点自行确定待缩容的云实例后,可通过实时修改cgroup配置,以减小待缩容的云实例的资源配额,这对于待缩容的云实例运行的业务而言,是不感知的,故不会导致待缩容的云实例运行的业务中断。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1