一种应用程序的更新方法、装置、电子设备和存储介质制造方法及图纸

技术编号:38520082 阅读:11 留言:0更新日期:2023-08-19 17:00
本发明专利技术公开了一种应用程序的更新方法、装置、电子设备和存储介质,涉及集群技术领域,该方法包括:创建自定义控制器并为自定义控制器分配自定义资源;通过自定义控制器根据配置关系监测配置字典的更新状态,并在监测到配置字典的更新信息时,对应用程序进行配置更新;通过管理控制器根据监测到的应用程序的配置更新信息,执行应用程序的容器组更新操作。本发明专利技术实施例的技术方案,通过自定义控制器对配置字典的更新监测以及应用程序的配置更新,不需要应用程序具备任何主动或者被动检测功能,具有较好的普遍适用性以及较高的配置更新效率,此外,本申请仅需要在管理节点中设置一个或有限数量的几个自定义控制器,降低了对集群资源的占用。的占用。的占用。

【技术实现步骤摘要】
一种应用程序的更新方法、装置、电子设备和存储介质


[0001]本专利技术涉及集群
,尤其涉及一种应用程序的更新方法、装置、电子设备和存储介质。

技术介绍

[0002]Kubernetes(即k8s)组件作为一种管理容器化应用程序的开源系统,被广泛应用于集群的应用部署中,而配置字典则是k8s组件中已部署完成的应用程序常用的配置文件加载方式。
[0003]配置字典虽然支持热更新功能,但是绝大多数的应用程序均不具备检测配置字典更新的功能,因此即使对配置字典进行了变更,应用程序仍然无法做出即时响应;现有技术为了解决上述问题,通常会在部署应用程序的容器组时,同时启动业务容器和边车容器,由边车容器获取映射到业务容器内的配置字典。
[0004]然而,在部署边车容器之后,仍然需要应用程序能够接收信号并进行热更新,但大部分业务应用并不支持该功能,同时业务应用的更新依赖于挂载到应用的配置文件的更新,而配置文件的更新依赖于与之对应的配置字典的更新;而当配置字典发生变化时,配置文件的更新并不是即时生效,存在较长的等待时间,由此常常导致业务应用的容器组出现更新延迟。

技术实现思路

[0005]本专利技术提供了一种应用程序的更新方法、装置、电子设备及存储介质,以解决应用程序的配置数据更新不及时的问题。
[0006]根据本专利技术的一方面,提供了一种应用程序的更新方法,包括:
[0007]创建自定义控制器并为所述自定义控制器分配自定义资源;其中,所述自定义资源用于记录配置字典与应用程序的配置关系;
[0008]通过所述自定义控制器根据所述配置关系监测所述配置字典的更新状态,并在监测到所述配置字典的更新信息时,对所述应用程序进行配置更新;
[0009]通过管理控制器根据监测到的所述应用程序的配置更新信息,执行所述应用程序的容器组更新操作。
[0010]在创建自定义控制器并为所述自定义控制器分配自定义资源之后,还包括:响应于获取到所述自定义控制器的配置关系更新请求,更新所述自定义资源记录的配置字典与应用程序的配置关系。由此基于配置关系更新请求可以根据用户不同的监测需求,调整自定义控制器的监测对象,扩展自定义控制器的监测范围。
[0011]所述创建自定义控制器并为所述自定义控制器分配自定义资源,具体包括:遍历集群中的各个应用程序,并获取各所述应用程序的监测类型;其中,所述监测类型包括主动监测应用、被动监测应用以及无监测应用;若确定当前应用程序为主动监测应用,将当前应用程序不作为所述自定义控制器的监测对象;若确定当前应用程序为被动监测应用或无监
测应用,将当前应用程序作为所述自定义控制器的监测对象。如果当前应用程序为主动监测应用,其代码逻辑本身具备配置文件的检测功能,不需要将其纳入自定义控制器的监测范围,避免了冗余检测的出现;如果当前应用程序为无监测应用,则将该应用程序作为监测对象,以及时完成该应用程序的配置更新;如果当前应用程序为被动监测应用,在管理节点中创建的自定义控制器,不但可以通过k8s组件服务接口及时获知配置字典更新信息,进而完成应用程序的配置数据的实时更新,同时释放了集群中的多个边车容器,极大地节省了集群资。
[0012]所述若确定当前应用程序为被动监测应用或无监测应用,将当前应用程序作为所述自定义控制器的监测对象,具体包括:若确定当前应用程序为被动监测应用,且当前应用程序的平均被动监测时间大于等于所述自定义控制器的平均监测时间,将当前应用程序作为所述自定义控制器的监测对象,并释放当前应用程序对应的原始监测工具。如果平均被动监测时间较长,则将当前应用程序作为自定义控制器的监测对象,以进一步提高当前应用程序的配置更新效率;如果平均被动监测时间较短,则不将当前应用程序作为自定义控制器的监测对象,确保当前应用程序保持原本较高的配置更新效率;如果平均被动监测时间等于平均监测时间,同样可以将当前应用程序作为自定义控制器的监测对象,由此在保持配置更新效率不变的前提下,释放边车容器占据的集群资源。
[0013]在确定当前应用程序为主动监测应用之后,还包括:若确定当前应用程序的平均主动监测时间大于等于第一预设时间,或者当前应用程序的实时性等级大于等于第一预设等级,将当前应用程序作为所述自定义控制器的监测对象;若检测到所述当前应用程序发起的监测请求,不响应所述当前应用程序发起的监测请求。满足了当前应用程序配置数据的实时更新需求。所述将当前应用程序不作为所述自定义控制器的监测对象,包括:若确定当前应用程序的平均主动监测时间小于第一预设时间,且当前应用程序的实时性等级小于第一预设等级,将当前应用程序不作为所述自定义控制器的监测对象。基于当前应用程序自身具备的主动检测功能执行配置文件的更新操作即可,既减少了自定义控制器的监测对象数量,又避免了冗余检测的出现。
[0014]所述第一预设时间大于所述自定义控制器的平均监测时间。将第一预设时间设置为大于平均监测时间,由此对于耗时较短的应用程序,即使其检测耗时略大于平均监测时间,也同样不作为自定义控制器的监测对象,避免冗余检测的出现;而对于耗时较长的应用程序,则将其作为自定义控制器的监测对象,以此大幅度提高当前应用程序的配置数据更新效率。
[0015]所述创建自定义控制器并为所述自定义控制器分配自定义资源,包括:创建多个不同的自定义控制器并为各所述自定义控制器分配不同的自定义资源;其中,各所述自定义控制器分别与不同监测类型的应用程序相匹配;主动监测应用、被动监测应用和无监测应用的监测优先级依次递增;若检测到多个自定义控制器的监测请求,根据各所述自定义控制器分别对应的监测类型的监测优先级,依次响应各所述自定义控制器的监测请求。根据不同应用程序的监测类型不同,为不同的自定义控制器设置不同的响应优先级,在同时检测到多个监测请求时,既能确保不具备任何更新检测功能的无监测应用的优先响应,也可以确保对响应耗时较长的被动监测应用的次级响应,最大程度的确保了集群中所有应用程序的配置数据的及时更新。
[0016]根据本专利技术的另一方面,提供了一种应用程序的更新装置,包括:
[0017]控制器创建模块,用于创建自定义控制器并为所述自定义控制器分配自定义资源;其中,所述自定义资源用于记录配置字典与应用程序的配置关系;
[0018]配置更新执行模块,用于通过所述自定义控制器根据所述配置关系监测所述配置字典的更新状态,并在监测到所述配置字典的更新信息时,对所述应用程序进行配置更新;
[0019]容器组更新执行模块,用于通过管理控制器根据监测到的所述应用程序的配置更新信息,执行所述应用程序的容器组更新操作。
[0020]根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括:
[0021]至少一个处理器;以及
[0022]与所述至少一个处理器通信连接的存储器;其中,
[0023]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序的更新方法,其特征在于,包括:创建自定义控制器并为所述自定义控制器分配自定义资源;其中,所述自定义资源用于记录配置字典与应用程序的配置关系;通过所述自定义控制器根据所述配置关系监测所述配置字典的更新状态,并在监测到所述配置字典的更新信息时,对所述应用程序进行配置更新;通过管理控制器根据监测到的所述应用程序的配置更新信息,执行所述应用程序的容器组更新操作。2.根据权利要求1所述的方法,其特征在于,在创建自定义控制器并为所述自定义控制器分配自定义资源之后,还包括:响应于获取到所述自定义控制器的配置关系更新请求,更新所述自定义资源记录的配置字典与应用程序的配置关系。3.根据权利要求1所述的方法,其特征在于,所述创建自定义控制器并为所述自定义控制器分配自定义资源,具体包括:遍历集群中的各个应用程序,并获取各所述应用程序的监测类型;其中,所述监测类型包括主动监测应用、被动监测应用以及无监测应用;若确定当前应用程序为主动监测应用,将当前应用程序不作为所述自定义控制器的监测对象;若确定当前应用程序为被动监测应用或无监测应用,将当前应用程序作为所述自定义控制器的监测对象。4.根据权利要求3所述的方法,其特征在于,所述若确定当前应用程序为被动监测应用或无监测应用,将当前应用程序作为所述自定义控制器的监测对象,具体包括:若确定当前应用程序为被动监测应用,且当前应用程序的平均被动监测时间大于等于所述自定义控制器的平均监测时间,将当前应用程序作为所述自定义控制器的监测对象,并释放当前应用程序对应的原始监测工具。5.根据权利要求3所述的方法,其特征在于,在确定当前应用程序为主动监测应用之后,还包括:若确定当前应用程序的平均主动监测时间大于等于第一预设时间,或者当前应用程序的实时性等级大于等于第一预设等级,将当前应用程序作为所述自定义控制器的监测对象;若检测到所述当前应用程序发起的监测请求,不响应所述当前应用程序发起的监测请求;所述将当前应用程序不作为...

【专利技术属性】
技术研发人员:周忠选吕非王鹏郭庆
申请(专利权)人:青岛中科曙光科技服务有限公司
类型:发明
国别省市:

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

1