System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于计算机,具体涉及一种感知pod应用状态自动更新应用配置的方法及装置。
技术介绍
1、随着云计算和微服务架构的普及,应用程序的规模和复杂性不断增加,kubernetes(简称为k8s)是一款开源的容器编排平台,提供了一种便捷的方式来管理容器化应用程序的生命周期,包括部署、扩展、监控和故障恢复,得到越来越广泛的使用。pod是kubernetes调度和管理的最小单元,所有的容器都在pod里面运行,每个pod里可以运行一到多个容器。kubernetes为提高应用程序的可靠性和高可用性,当应用程序出现故障或pod所在节点出现故障时,会自动对pod进行重启,引起pod中非持久化的应用数据发生变更。deployment是kubernetes中一种资源对象,用于定义应用程序的部署方式。通过使用deployment,可以方便的管理和控制pod的创建、更新和删除。
2、在kubernetes中,configmap是一种用于存储应用程序的配置数据的机制。它能够将配置数据从pod中的容器镜像中分离出来,从而使应用程序的配置更加灵活和可扩展。configmap可以包含键值对,以及配置文件等数据。pod可以使用configmap中存储的配置数据,使应用程序易于配置和修改。当需要更改配置时,可以更新configmap中的文件,并重新启动pod,使更改生效
3、在kubernetes中,通常会将一个完整的业务应用程序拆分成多个微服务,每个微服务由一个或多个容器组成,这些容器由pod部署承载。pod之间服务调用通过配置授权s
4、为了监测pod的状态和获取应用数据,传统的方法通常需要登录到pod所在的主机或使用命令行工具,获取最新的应用数据,再将配置更新到configmap中,重启使用该configmap的pod使配置生效。这种方式不实时、操作过程复杂且需要具备一定的技术知识。
技术实现思路
1、本专利技术针对现有技术下监测pod的状态和获取应用数据不实时、操作过程复杂且需要具备一定的技术知识的问题,提供了一种感知pod应用状态自动更新应用配置的方法及装置。
2、为了达到上述目的,本申请采用的技术方案为:
3、获取pod的应用数据;
4、检测pod的应用数据与configmap中的配置数据是否一致;
5、当pod的应用数据与configmap中的配置数据不一致时,基于pod的应用数据更新configmap中的配置数据,得到更新后的configmap;
6、基于更新后的configmap,对目标pod进行更新;所述目标pod包括使用更新后的configmap的pod。
7、作为优选,在获取pod的应用数据之前,还包括:获取pod的应用数据的地址信息;
8、获取pod的应用数据,包括:
9、基于pod的应用数据的地址信息,获取pod的应用数据。
10、作为优选,pod的应用数据的地址信息包括url。
11、作为优选,在所述检测pod的应用数据与configmap中的配置数据是否一致之前,还包括:获取configmap数据配置项;
12、所述检测pod的应用数据与configmap中的配置数据是否一致,包括:
13、基于所configmap数据配置项,检测pod的应用数据与configmap中的配置数据是否一致。
14、作为优选,在所述基于更新后的configmap,对目标pod进行更新之前,还包括:
15、确定所述configmap对应的deployment;
16、基于所述configmap对应的deployment,确定目标pod。
17、作为优选,所述获取pod的应用数据,包括:
18、按照预设周期获取pod的应用数据。
19、作为优选,在所述基于更新后的configmap,更新目标pod之后,还包括:
20、记录配置变更信息。
21、作为优选,所述配置变更信息包括:变更配置项、变更时间、变更前后参数值、变更结果中的至少一项。
22、本申请实施例提供了一种感知pod应用状态自动更新应用配置的装置,包括:
23、获取单元,用于获取pod的应用数据;
24、检测单元,用于检测pod的应用数据与configmap中的配置数据是否一致;
25、第一处理单元,当pod的应用数据与configmap中的配置数据不一致时,基于pod的应用数据更新configmap中的配置数据,得到更新后的configmap;
26、第二处理单元,基于更新后的configmap,对目标pod进行更新;所述目标pod包括使用更新后的configmap的pod。
27、本申请实施例提供了一种电子设备,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行上述任一项所述的方法。
28、本专利技术提出一种感知pod状态自动更新应用配置的方法,通过一个监控程序来获取pod中的数据,与configmap中的配置对比判断是否发生了变更,发生变更后将变更更新到configmap中,再通过kubernetes api使pod更新相应配置。
29、与现有技术相比,本专利技术的优点和积极效果在于:
30、1、可以自动检测pod中的数据变更,并将变更更新到相关的configmap中,然后自动触发使用该configmap的pod进行重启以使配置生效。
31、2、使用单独pod完成监控和配置更新,即使用非业务pod执行本专利技术提供的方法,非业务pod即是部署监控程序的pod,避免了在业务pod出现故障功能不可用,同时确保执行性能。
32、3、按照预设周期获取pod的应用数据,即通过轮询方式持续监听pod中数据变化,实现方式采用监控程序通过间隔一定时间,周期性获取应用数据,这是由监控程序具体实现的,目的是为了及时检测到数据变化,能够及时检测到不一致,并将更新后数据同步到configmap中,使配置数据可以立即应用到pod中。
33、4、该方法可以应用到不同类型的应用程序和容器平台中,通过配置实现不同pod应用数据和configmap的对应关系,具有广泛的适用性。
本文档来自技高网...【技术保护点】
1.一种感知Pod应用状态自动更新应用配置的方法,其特征在于,包括:
2.根据权利要求1的方法,其特征在于,在获取Pod的应用数据之前,还包括:获取Pod的应用数据的地址信息;
3.根据权利要求2的方法,其特征在于,Pod的应用数据的地址信息包括URL。
4.根据权利要求1的方法,其特征在于,在所述检测Pod的应用数据与ConfigMap中的配置数据是否一致之前,还包括:获取ConfigMap数据配置项;
5.根据权利要求1的方法,其特征在于,在所述基于更新后的ConfigMap,对目标Pod进行更新之前,还包括:
6.根据权利要求1的方法,其特征在于,所述获取Pod的应用数据,包括:按照预设周期获取Pod的应用数据。
7.根据权利要求1的方法,其特征在于,在所述基于更新后的ConfigMap,更新目标Pod之后,还包括:记录配置变更信息。
8.根据权利要求7的方法,其特征在于,所述配置变更信息包括:变更配置项、变更时间、变更前后参数值、变更结果中的至少一项。
9.一种感知Pod应用状
10.一种电子设备,其特征在于,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被处理器执行时,触发电子设备执行权利要求1-8任一项的方法。
...【技术特征摘要】
1.一种感知pod应用状态自动更新应用配置的方法,其特征在于,包括:
2.根据权利要求1的方法,其特征在于,在获取pod的应用数据之前,还包括:获取pod的应用数据的地址信息;
3.根据权利要求2的方法,其特征在于,pod的应用数据的地址信息包括url。
4.根据权利要求1的方法,其特征在于,在所述检测pod的应用数据与configmap中的配置数据是否一致之前,还包括:获取configmap数据配置项;
5.根据权利要求1的方法,其特征在于,在所述基于更新后的configmap,对目标pod进行更新之前,还包括:
6.根据权利要求1的方法,其特征在...
【专利技术属性】
技术研发人员:陈金龙,魏子重,李锐,
申请(专利权)人:山东浪潮科学研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。