基于容器组状态的容器组运维变更方法及系统技术方案

技术编号:37350549 阅读:11 留言:0更新日期:2023-04-22 21:49
本说明书实施例提供基于容器组状态的容器组运维变更方法及系统。响应于触发容器组运维变更声明,驱动容器组进入包括自定义运维变更前置状态的运维变更前置状态,随后前置状态处理器对容器组执行变更前置处理。在完成变更前置处理后,驱动容器组进入运维变更可触发状态,随后容器组运维变更触发器发起容器组运维变更。在完成容器组运维变更后,驱动容器组进入容器组变更状态来启动变更后的容器组,随后驱动变更后的容器组进入运维变更后置状态。在容器组处于运维变更后置状态时,后置状态处理器对变更后的容器组执行变更后置处理。在完成变更后置处理后,驱动变更后的容器组恢复容器组初始状态,从而完成容器组运维变更生命周期。期。期。

【技术实现步骤摘要】
基于容器组状态的容器组运维变更方法及系统


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

技术介绍

[0002]随着云计算技术的发展,容器技术(比如,Docker)和基于容器技术的云资源编排系统(比如,Kubernetes)得到广泛的应用,并成为行业标准。在云原生技术中,容器组(例如,Pod)是云资源编排系统的最小调度单元。一个容器组由一个或多个容器(container)组成,并且在容器组上运行应用程序。
[0003]在容器云应用实践中,会围绕容器组建立一系列资源,比如,注册流量服务、关联数据存储等。因此在容器组运维变更(如创建、删除、升级)时,周边服务(或周边资源)有可能需要执行一系列自定义操作,比如,在变更前摘网络流量、数据备份等。但在默认的云资源编排系统(比如,Kubernetes)中,负责管理容器组运维变更操作的工作负载(workload)并没有考虑这种情况。容器组运维变更请求一旦提交,就会触发容器组运维变更行为,并且运行在容器组内部的应用程序会停止运行。容器组运维变更结束后,也会立即认为整个运维变更流程结束。在这种情况下,所触发的容器组运维变更操作属于原子操作,不能实现将自定义操作编排进容器组运维变更流程中。这对保证容器组周边资源的完备性(比如,网络流量稳定性、数据使用完整性等)都带来了挑战。

技术实现思路

[0004]本说明书实施例提供基于容器组状态的容器组运维变更方法及容器组运维变更系统。利用该容器组运维变更方法及容器组运维变更系统,可以实现在容器组运维变更时自行编排自定义操作。
[0005]根据本说明书实施例的一个方面,提供一种基于容器组状态的容器组运维变更方法,包括:响应于容器组运维变更触发器触发容器组运维变更声明,容器组状态驱动器驱动待变更的容器组从所触发的容器组运维变更生命周期的容器组初始状态进入运维变更前置状态,所述运维变更前置状态至少包括用于触发自定义操作的自定义运维变更前置状态;响应于监测到所述容器组处于所述运维变更前置状态,所述运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置处理;在所有前置状态处理器完成变更前置处理后,所述容器组状态驱动器驱动所述容器组进入运维变更可触发状态;响应于监测到所述容器组处于所述运维变更可触发状态,所述容器组运维变更触发器发起对所述容器组执行容器组运维变更;在完成容器组运维变更后,所述容器组状态驱动器驱动所述容器组进入容器组变更状态,以在变更后的运维条件下启动变更后的容器组;在所述变更后的容器组启动后,所述容器组状态驱动器驱动所述变更后的容器组进入运维变更后置状态;响应于监测到所述变更后的容器组处于所述运维变更后置状态,所述运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置处理;以及在所有后置状态处理
器完成变更后置处理后,所述容器组状态驱动器驱动所述变更后的容器组恢复容器组初始状态。
[0006]可选地,在上述方面的一个示例中,所述运维变更前置状态包括用于触发变更前置检查的第一运维变更前置状态和用于触发运维变更准备的第二运维变更前置状态,所述变更前置检查包括基于前置检查规则的容器组变更准入检查,所述前置检查规则至少包括自定义前置检查规则。所述响应于监测到所述容器组处于所述运维变更前置状态,所述运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置处理包括:响应于监测到所述容器组处于所述第一运维变更前置状态,所述第一运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置检查;以及响应于监测到所述变更前置检查通过,所述第二运维变更前置状态所对应的前置状态处理器触发停用所述容器组为周边服务提供的服务。
[0007]可选地,在上述方面的一个示例中,所述前置检查规则还可以包括以下规则中的至少一种:基于服务水位的前置检查规则;基于服务资源的前置检查规则;和基于容器组重建校验的前置检查规则。
[0008]可选地,在上述方面的一个示例中,所述运维变更后置状态包括用于触发变更后置检查的第一运维变更后置状态和用于触发运维变更完成的第二运维变更后置状态,所述变更后置检查包括基于后置检查规则的容器组变更准出检查,所述后置检查规则至少包括与自定义前置检查规则对应的自定义后置检查规则。响应于监测到所述变更后的容器组处于所述运维变更后置状态,所述运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置处理包括:响应于监测到所述变更后的容器组处于所述第一运维变更后置状态,所述第一运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置检查;以及响应于监测到所述变更后置检查通过,所述第二运维变更前置状态所对应的后置状态处理器触发恢复所述变更后的容器组为周边服务提供服务。
[0009]可选地,在上述方面的一个示例中,所述第一运维变更前置状态所对应的前置状态处理器包括RuleSet状态处理器,和/或所述第一运维变更后置状态所对应的后置状态处理器包括RuleSet状态处理器。
[0010]可选地,在上述方面的一个示例中,在容器组所提供的服务包括与流量对应的服务时,所述第二运维变更前置状态所对应的前置状态处理器包括用于流量管控的状态处理器,所述第二运维变更后置状态所对应的后置状态处理器包括用于流量管控的状态处理器,以及所述容器组所提供服务的停用和恢复分别通过所述用于流量管控的状态处理器的摘流处理和挂流处理来实现。
[0011]可选地,在上述方面的一个示例中,所述容器组为周边服务提供服务的停用通过周边服务注销所述容器组并从所述容器组上删除各自的资源锁来实现,以及所述变更后的容器组为周边服务提供服务的恢复通过周边服务注册所述容器组所对应的服务实例并在所述容器组上挂载各自的资源锁来实现。
[0012]可选地,在上述方面的一个示例中,所述容器组的各个状态通过为所述容器组标注对应的状态标记来实现。
[0013]可选地,在上述方面的一个示例中,所述容器组运维变更触发器包括多个容器组运维变更触发器,如果一个或多个容器组运维变更触发器的容器组运维变更声明的发送时
机在当前容器组运维变更生命周期的所述容器组运维变更完成之前,则所述一个或多个容器组运维变更触发器共享所述当前容器组运维变更生命周期来执行各自的容器组运维变更。
[0014]可选地,在上述方面的一个示例中,所述容器组运维变更方法还可以包括:响应于在所述容器组运维变更生命周期中处于所述运维变更前置状态时接收到容器组运维变更取消请求,从当前操作直接跳转到执行所述容器组状态驱动器驱动所述容器组进入容器组变更状态的操作。
[0015]根据本说明书的实施例的另一方面,提供一种用于基于容器组状态的容器组运维变更的方法,包括:响应于容器组运维变更触发器触发容器组运维变更声明,驱动待变更的容器组从所触发的容器组运维变更生命周期的容器组初始状态进入运维变更前置状态,所述运维变更前置状态至少包括用于触发自定义操作的自定义运维变更前置状态;在所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于容器组状态的容器组运维变更方法,包括:响应于容器组运维变更触发器触发容器组运维变更声明,容器组状态驱动器驱动待变更的容器组从所触发的容器组运维变更生命周期的容器组初始状态进入运维变更前置状态,所述运维变更前置状态至少包括用于触发自定义操作的自定义运维变更前置状态;响应于监测到所述容器组处于所述运维变更前置状态,所述运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置处理;在所有前置状态处理器完成变更前置处理后,所述容器组状态驱动器驱动所述容器组进入运维变更可触发状态;响应于监测到所述容器组处于所述运维变更可触发状态,所述容器组运维变更触发器发起对所述容器组执行容器组运维变更;在完成容器组运维变更后,所述容器组状态驱动器驱动所述容器组进入容器组变更状态,以在变更后的运维条件下启动变更后的容器组;在所述变更后的容器组启动后,所述容器组状态驱动器驱动所述变更后的容器组进入运维变更后置状态;响应于监测到所述变更后的容器组处于所述运维变更后置状态,所述运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置处理;以及在所有后置状态处理器完成变更后置处理后,所述容器组状态驱动器驱动所述变更后的容器组恢复容器组初始状态。2.如权利要求1所述的容器组运维变更方法,其中,所述运维变更前置状态包括用于触发变更前置检查的第一运维变更前置状态和用于触发运维变更准备的第二运维变更前置状态,所述变更前置检查包括基于前置检查规则的容器组变更准入检查,所述前置检查规则至少包括自定义前置检查规则,所述响应于监测到所述容器组处于所述运维变更前置状态,所述运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置处理包括:响应于监测到所述容器组处于所述第一运维变更前置状态,所述第一运维变更前置状态所对应的前置状态处理器对所述容器组执行变更前置检查;以及响应于监测到所述变更前置检查通过,所述第二运维变更前置状态所对应的前置状态处理器触发停用所述容器组为周边服务提供服务。3.如权利要求2所述的容器组运维变更方法,其中,所述前置检查规则还包括以下规则中的至少一种:基于服务水位的前置检查规则;基于服务资源的前置检查规则;和基于容器组重建校验的前置检查规则。4.如权利要求2所述的容器组运维变更方法,其中,所述运维变更后置状态包括用于触发变更后置检查的第一运维变更后置状态和用于触发运维变更完成的第二运维变更后置状态,所述变更后置检查包括基于后置检查规则的容器组变更准出检查,所述后置检查规则至少包括与自定义前置检查规则对应的自定义后置检查规则,响应于监测到所述变更后的容器组处于所述运维变更后置状态,所述运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置处理包括:
响应于监测到所述变更后的容器组处于所述第一运维变更后置状态,所述第一运维变更后置状态所对应的后置状态处理器对所述变更后的容器组执行变更后置检查;以及响应于监测到所述变更后置检查通过,所述第二运维变更前置状态所对应的后置状态处理器触发恢复所述变更后的容器组为周边服务提供服务。5.如权利要求4所述的容器组运维变更方法,其中,所述第一运维变更前置状态所对应的前置状态处理器包括RuleSet状态处理器,和/或所述第一运维变更后置状态所对应的后置状态处理器包括RuleSet状态处理器。6.如权利要求4所述的容器组运维变更方法,其中,在容器组所提供的服务包括与流量对应的服务时,所述第二运维变更前置状态所对应的前置状态处理器包括用于流量管控的状态处理器,所述第二运维变更后置状态所对应的后置状态处理器包括用于流量管控的状态处理器,以及所述容器组所提供服务的停用和恢复分别通过所述用于流量管控的状态处理器的摘流处理和挂流处理来实现。7.如权利要求4所述的容器组运维变更方法,其中,所述容器组为周边服务提供服务的停用通过周边服务注销所述容器组并从所述容器组上删除各自的资源锁来实现,以及所述变更后的容器组为周边服务提供服务的恢复通过周边服务注册所述变更后的容器组所对应的服务实例并在所述变更后的容器组上挂载各自的资源锁来实现。8.如权利要求1所述的容器组运维变更方法,其中,所述容器组的各个状态通过为所述容器组标注对应的状态标记...

【专利技术属性】
技术研发人员:吴珂
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1