基于容器组状态的容器组运维变更方法及系统与流程

文档序号:33935302发布日期:2023-04-22 15:02阅读:46来源:国知局
基于容器组状态的容器组运维变更方法及系统与流程

本说明书实施例通常涉及容器,尤其涉及基于容器组状态的容器组运维变更方法及容器组运维变更系统。


背景技术:

1、随着云计算技术的发展,容器技术(比如,docker)和基于容器技术的云资源编排系统(比如,kubernetes)得到广泛的应用,并成为行业标准。在云原生技术中,容器组(例如,pod)是云资源编排系统的最小调度单元。一个容器组由一个或多个容器(container)组成,并且在容器组上运行应用程序。

2、在容器云应用实践中,会围绕容器组建立一系列资源,比如,注册流量服务、关联数据存储等。因此在容器组运维变更(如创建、删除、升级)时,周边服务(或周边资源)有可能需要执行一系列自定义操作,比如,在变更前摘网络流量、数据备份等。但在默认的云资源编排系统(比如,kubernetes)中,负责管理容器组运维变更操作的工作负载(workload)并没有考虑这种情况。容器组运维变更请求一旦提交,就会触发容器组运维变更行为,并且运行在容器组内部的应用程序会停止运行。容器组运维变更结束后,也会立即认为整个运维变更流程结束。在这种情况下,所触发的容器组运维变更操作属于原子操作,不能实现将自定义操作编排进容器组运维变更流程中。这对保证容器组周边资源的完备性(比如,网络流量稳定性、数据使用完整性等)都带来了挑战。


技术实现思路

1、本说明书实施例提供基于容器组状态的容器组运维变更方法及容器组运维变更系统。利用该容器组运维变更方法及容器组运维变更系统,可以实现在容器组运维变更时自行编排自定义操作。

2、根据本说明书实施例的一个方面,提供一种基于容器组状态的容器组运维变更方法,包括:响应于容器组运维变更触发器触发容器组运维变更声明,容器组状态驱动器驱动待变更的容器组从所触发的容器组运维变更生命周期的容器组初始状态进入运维变更前置状态,所述运维变更前置状态至少包括用于触发自定义操作的自定义运维变更前置状态;响应于监测到所述容器组处于所述运维变更前置状态,所述运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置处理;在所有前置状态处理器完成变更前置处理后,所述容器组状态驱动器驱动所述容器组进入运维变更可触发状态;响应于监测到所述容器组处于所述运维变更可触发状态,所述容器组运维变更触发器发起对所述容器组执行容器组运维变更;在完成容器组运维变更后,所述容器组状态驱动器驱动所述容器组进入容器组变更状态,以在变更后的运维条件下启动变更后的容器组;在所述变更后的容器组启动后,所述容器组状态驱动器驱动所述变更后的容器组进入运维变更后置状态;响应于监测到所述变更后的容器组处于所述运维变更后置状态,所述运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置处理;以及在所有后置状态处理器完成变更后置处理后,所述容器组状态驱动器驱动所述变更后的容器组恢复容器组初始状态。

3、可选地,在上述方面的一个示例中,所述运维变更前置状态包括用于触发变更前置检查的第一运维变更前置状态和用于触发运维变更准备的第二运维变更前置状态,所述变更前置检查包括基于前置检查规则的容器组变更准入检查,所述前置检查规则至少包括自定义前置检查规则。所述响应于监测到所述容器组处于所述运维变更前置状态,所述运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置处理包括:响应于监测到所述容器组处于所述第一运维变更前置状态,所述第一运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置检查;以及响应于监测到所述变更前置检查通过,所述第二运维变更前置状态所对应的前置状态处理器触发停用所述容器组为周边服务提供的服务。

4、可选地,在上述方面的一个示例中,所述前置检查规则还可以包括以下规则中的至少一种:基于服务水位的前置检查规则;基于服务资源的前置检查规则;和基于容器组重建校验的前置检查规则。

5、可选地,在上述方面的一个示例中,所述运维变更后置状态包括用于触发变更后置检查的第一运维变更后置状态和用于触发运维变更完成的第二运维变更后置状态,所述变更后置检查包括基于后置检查规则的容器组变更准出检查,所述后置检查规则至少包括与自定义前置检查规则对应的自定义后置检查规则。响应于监测到所述变更后的容器组处于所述运维变更后置状态,所述运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置处理包括:响应于监测到所述变更后的容器组处于所述第一运维变更后置状态,所述第一运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置检查;以及响应于监测到所述变更后置检查通过,所述第二运维变更前置状态所对应的后置状态处理器触发恢复所述变更后的容器组为周边服务提供服务。

6、可选地,在上述方面的一个示例中,所述第一运维变更前置状态所对应的前置状态处理器包括ruleset状态处理器,和/或所述第一运维变更后置状态所对应的后置状态处理器包括ruleset状态处理器。

7、可选地,在上述方面的一个示例中,在容器组所提供的服务包括与流量对应的服务时,所述第二运维变更前置状态所对应的前置状态处理器包括用于流量管控的状态处理器,所述第二运维变更后置状态所对应的后置状态处理器包括用于流量管控的状态处理器,以及所述容器组所提供服务的停用和恢复分别通过所述用于流量管控的状态处理器的摘流处理和挂流处理来实现。

8、可选地,在上述方面的一个示例中,所述容器组为周边服务提供服务的停用通过周边服务注销所述容器组并从所述容器组上删除各自的资源锁来实现,以及所述变更后的容器组为周边服务提供服务的恢复通过周边服务注册所述容器组所对应的服务实例并在所述容器组上挂载各自的资源锁来实现。

9、可选地,在上述方面的一个示例中,所述容器组的各个状态通过为所述容器组标注对应的状态标记来实现。

10、可选地,在上述方面的一个示例中,所述容器组运维变更触发器包括多个容器组运维变更触发器,如果一个或多个容器组运维变更触发器的容器组运维变更声明的发送时机在当前容器组运维变更生命周期的所述容器组运维变更完成之前,则所述一个或多个容器组运维变更触发器共享所述当前容器组运维变更生命周期来执行各自的容器组运维变更。

11、可选地,在上述方面的一个示例中,所述容器组运维变更方法还可以包括:响应于在所述容器组运维变更生命周期中处于所述运维变更前置状态时接收到容器组运维变更取消请求,从当前操作直接跳转到执行所述容器组状态驱动器驱动所述容器组进入容器组变更状态的操作。

12、根据本说明书的实施例的另一方面,提供一种用于基于容器组状态的容器组运维变更的方法,包括:响应于容器组运维变更触发器触发容器组运维变更声明,驱动待变更的容器组从所触发的容器组运维变更生命周期的容器组初始状态进入运维变更前置状态,所述运维变更前置状态至少包括用于触发自定义操作的自定义运维变更前置状态;在所述运维变更前置状态所对应的所有前置状态处理器完成变更前置处理后,驱动所述容器组进入运维变更可触发状态,所述前置状态处理器响应于监测到所述容器组处于所述运维变更前置状态而对所述容器组执行变更前置处理;在完成所述容器组运维变更触发器所发起的容器组运维变更后,驱动所述容器组进入容器组变更状态,以在变更后的运维条件下启动变更后的容器组,所述容器组运维变更触发器响应于监测到所述容器组处于所述运维变更可触发状态而发起对所述容器组执行容器组运维变更;在所述变更后的容器组启动后,驱动所述变更后的容器组进入运维变更后置状态;以及在所述运维变更后置状态所对应的所有后置状态处理器完成变更后置处理后,驱动所述变更后的容器组恢复容器组初始状态,所述后置状态处理器响应于监测到所述变更后的容器组处于所述运维变更后置状态而对所述变更后的容器组执行变更后置处理。

13、根据本说明书的实施例的另一方面,提供一种基于容器组状态的容器组运维变更系统,包括:容器组运维变更触发器,触发容器组运维变更声明,以及响应于监测到所述容器组处于运维变更可触发状态,发起对所述容器组执行容器组运维变更;前置状态处理器,响应于监测到所述容器组处于运维变更前置状态而对所述容器组执行变更前置处理;后置状态处理器,响应于监测到变更后的容器组处运维变更后置状态而对所述变更后的容器组执行变更后置处理;以及容器组状态驱动器,响应于所述容器组运维变更触发器触发容器组运维变更声明,驱动待变更的容器组从所触发的容器组运维变更生命周期的容器组初始状态进入运维变更前置状态,所述运维变更前置状态至少包括用于触发自定义操作的自定义运维变更前置状态;在所述运维变更前置状态所对应的所有前置状态处理器完成变更前置处理后,驱动所述容器组进入运维变更可触发状态;在完成所述容器组运维变更触发器所发起的容器组运维变更后,驱动所述容器组进入容器组变更状态,以在变更后的运维条件下启动变更后的容器组;在所述变更后的容器组启动后,驱动所述变更后的容器组进入运维变更后置状态;以及在所述运维变更后置状态所述对应的所有后置状态处理器完成变更后置处理后,驱动所述变更后的容器组恢复容器组初始状态。

14、根据本说明书的实施例提供一种基于容器组状态的容器组运维变更系统,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上所述的基于容器组状态的容器组运维变更方法。

15、根据本说明书的实施例提供一种用于基于容器组状态的容器组运维变更的装置,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器中的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上所述的用于基于容器组状态的容器组运维变更的方法。

16、根据本说明书的实施例提供一种计算机可读存储介质,其存储有可执行指令,所述指令当被执行时使得处理器执行如上所述的基于容器组状态的容器组运维变更方法或者如上所述的用于基于容器组状态的容器组运维变更的方法。

17、根据本说明书的实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行来实现如上所述的基于容器组状态的容器组运维变更方法或者如上所述的用于基于容器组状态的容器组运维变更的方法。

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