一种基于Istio的Sidecar热更新方法及装置与流程

文档序号:36497141发布日期:2023-12-27 19:15阅读:33来源:国知局
一种基于的制作方法

本申请涉及数据处理,尤其涉及一种基于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热更新方法。


技术总结
本申请提供了一种基于Istio的Sidecar热更新方法及装置,该方法包括:响应更新触发操作,通过目标接口进入待更新Sidecar容器,并执行升级命令,其中,所述升级命令用于通知Sidecar Agent进行热更新;通过所述Sidecar Agent获取所述待更新Sidecar容器对应的新版本目标制品;通过所述新版本目标制品替换所述待更新Sidecar容器中的旧版本目标制品以完成热更新。本申请能够托管热更新Sidecar的制品,解决了原来Sidecar更新必须重建的问题。

技术研发人员:王天鹏
受保护的技术使用者:北京凌云雀科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1