本申请涉及数据处理,尤其涉及一种基于istio的sidecar热更新方法及装置。
背景技术:
1、随着服务网格理念的广泛推广,istio也越来越多地被用于生产环境中,用于以非侵入式的方式对服务进行高性能治理。
2、但是每次istio更新,都会要求sidecar进行更新,而更新的唯一方式就是重建容器组,这导致每次更新繁琐,并且重建容器组有风险,影响istio持续升级。
技术实现思路
1、有鉴于此,本申请实施例提供了一种基于istio的sidecar热更新方法、装置、电子设备及存储介质,能够托管热更新sidecar的制品,解决了原来sidecar更新必须重建的问题。
2、本申请实施例的技术方案是这样实现的:
3、第一方面,本申请实施例提供一种基于istio的sidecar热更新方法,包括以下步骤:
4、响应更新触发操作,通过目标接口进入待更新sidecar容器,并执行升级命令,其中,所述升级命令用于通知sidecar agent进行热更新;
5、通过所述sidecar agent获取所述待更新sidecar容器对应的新版本目标制品;
6、通过所述新版本目标制品替换所述待更新sidecar容器中的旧版本目标制品以完成热更新。
7、在一种可能的实施方式中,所述更新触发操作为管理组件检测到所述目标资源,所述响应于更新触发操作,通过目标接口进入待更新sidecar容器之前,所述方法还包括:
8、创建目标资源,其中,所述目标资源指定了所述待更新sidecar容器对应的容器列表。
9、在一种可能的实施方式中,所述通过目标接口进入待更新sidecar容器,并执行升级命令,包括:
10、对所述容器列表中的每个所述待更新sidecar容器依次使用kubernetes execapi,以进入对应的所述待更新sidecar容器;
11、针对所述待更新sidecar容器,执行所述升级命令,以通知所述sidecar agent进行热更新。
12、在一种可能的实施方式中,所述通过所述sidecar agent获取所述待更新sidecar容器对应的新版本目标制品,包括:
13、通过所述sidecar agent拉取所述待更新sidecar容器对应的新版本envoy制品。
14、在一种可能的实施方式中,所述通过所述新版本目标制品替换所述待更新sidecar容器中的旧版本目标制品以完成热更新,包括:
15、通过所述sidecar agent启动所述新版本envoy制品;
16、通知旧版本envoy制品进行排水处理。
17、在一种可能的实施方式中,所述方法还包括:
18、向管理组件发送升级完成信息;
19、若升级失败,向所述管理组件发送错误信息。
20、在一种可能的实施方式中,所述通过所述sidecar agent获取所述待更新sidecar容器对应的新版本目标制品之前,所述方法还包括:
21、为所述新版本目标制品建立备份制品;
22、当完成热更新后,响应于目标条件的触发操作,基于所述备份制品对已更新sidecar容器进行回滚,其中,所述目标条件包括:所述新版本目标制品异常、接收到回滚指令。
23、第二方面,本申请实施例还提供一种基于istio的sidecar热更新装置,所述装置包括:
24、执行模块,用于响应更新触发操作,通过目标接口进入待更新sidecar容器,并执行升级命令,其中,所述升级命令用于通知sidecar agent进行热更新;
25、获取模块,用于通过所述sidecar agent获取所述待更新sidecar容器对应的新版本目标制品;
26、替换模块,用于通过所述新版本目标制品替换所述待更新sidecar容器中的旧版本目标制品以完成热更新。
27、第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的基于istio的sidecar热更新方法。
28、第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一项所述的基于istio的sidecar热更新方法。
29、本申请实施例具有以下有益效果:
30、通过对istio sidecar进行扩展,增加目标资源,并使用kubernetes exec api对istio sidecar执行升级命令,从而拉取新版本的sidecar制品、启动新版本envoy的同时对旧版本的envoy进行排水。这样,可以托管热更新sidecar的制品,解决了原来sidecar更新必须重建的问题,简化更新难度,消除重建容器所带来的风险。
1.一种基于istio的sidecar热更新方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述更新触发操作为管理组件检测到所述目标资源,所述响应于更新触发操作,通过目标接口进入待更新sidecar容器之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述通过目标接口进入待更新sidecar容器,并执行升级命令,包括:
4.根据权利要求1所述的方法,其特征在于,所述通过所述sidecar agent获取所述待更新sidecar容器对应的新版本目标制品,包括:
5.根据权利要求4所述的方法,其特征在于,所述通过所述新版本目标制品替换所述待更新sidecar容器中的旧版本目标制品以完成热更新,包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述通过所述sidecar agent获取所述待更新sidecar容器对应的新版本目标制品之前,所述方法还包括:
8.一种基于istio的sidecar热更新装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至7任一项所述的基于istio的sidecar热更新方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一项所述的基于istio的sidecar热更新方法。