一种辅助容器实现热升级的方法及装置制造方法及图纸

技术编号:29788710 阅读:15 留言:0更新日期:2021-08-24 18:07
本申请公开了一种辅助容器实现热升级的方法及装置,通过为一个辅助容器注入了两个容器即辅助容器和其对应的空容器的方式,避免了原地更新一个容器而导致的流量损失的问题。另外,在完成空容器到新的辅助容器的升级和流量接管后,通过将原有的辅助容器重置为空容器的方式,避免了原有的辅助容器因为进程退出触发容器或者探活重启的问题,也避免了由于原有的辅助容器退出失败而导致的相关进程资源无法清理的问题。本申请实施例提供的辅助容器热升级的方式对容器化的应用有了完整的支持,实现了辅助容器独立热升级,而无需业务感知,从而提升了产品竞争力和用户满意度。

【技术实现步骤摘要】
一种辅助容器实现热升级的方法及装置
本申请涉及但不限于云原生技术,尤指一种辅助容器实现热升级的方法及装置。
技术介绍
云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative)是一个组合词,其中,Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,充分利用和发挥云平台的弹性和分布式优势。云原生已经日渐成为在云上交付和运行应用的标准方式,云原生应用中和业务不直接相关的辅助功能,如日志采集、流量代理、安全扫描等,都被逐渐剥离出来,改为使用云平台提供的相应基础设施。云原生应用普遍利用了下沉的基础设施能力,例如ServiceMesh等,这些基础设施功能为了提供更好的性能和隔离能力,主要采用辅助容器的方式,和业务应用部署在同一个Pod中。ServiceMesh是随着微服务架构在互联网企业的广泛实践中而产生的新一代微服务之一。ServiceMesh是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,ServiceMesh保证请求可以在这些拓扑中可靠地穿梭。在实际应用当中,ServiceMesh通常是由一系列轻量级的网络代理组成的,这些网络代理与应用程序部署在一起,只是应用程序不需要知道ServiceMesh的存在。容器组(Pod)是Kubernetes(Kubernetes是一个可移植、可扩展的开源平台,用于自动部署、扩展和管理容器化应用程序)为部署、管理、编排容器化应用提出的概念,也是Kubernetes中的最小部署单元,代表了Kubernetes中一个独立的应用程序运行实例,直译过来的意思是“豆荚”,既简单又实用。Pod可以看作是由一组紧耦合的容器组成的容器组,Pod中的所有容器会被一致调度、同节点部署,并且在一个共享环境中运行。由于辅助容器和业务容器部署在一起,辅助容器版本的更新往往和业务的发布耦合在一起,这极大地限制了基础设施功能的迭代速度,并给业务使用基础设施功能带来了很大负担。如何高效地升级下沉的基础设施决定了迭代的速度,是提升竞争力和用户满意度的关键。相关技术中并没有一种通用的支持辅助容器热升级的机制。
技术实现思路
本申请提供一种辅助容器实现热升级的方法及装置,能够实现辅助容器独立热升级,而无需业务感知,从而提升产品竞争力和用户满意度。本专利技术实施例提供了一种辅助容器实现热升级的方法,包括:在应用实例中创建辅助容器和辅助容器对应的空容器;需要对辅助容器进行热升级时,将空容器升级为新的辅助容器,并在升级过程中执行切换连接操作;完成空容器到新的辅助容器的升级,将原有的辅助容器更改为新的辅助容器对应的空容器。在一种示例性实例中,所述在应用实例中创建辅助容器和辅助容器对应的空容器之后,还包括:对于需要热升级的所述辅助容器,设置热升级标记,用于表示所述辅助容器采用热升级方式。在一种示例性实例中,在所述注入辅助容器时,还包括:为创建的所述辅助容器设置环境变量,用于标识所述辅助容器的版本;或者,通过配置文件标识所述辅助容器的版本。在一种示例性实例中,所述在应用实例中创建辅助容器和辅助容器对应的空容器包括:在创建Pod注入所述辅助容器时,创建一个真实使用的所述辅助容器,以及一个与该辅助容器对应的所述空容器。在一种示例性实例中,所述将空容器升级为新的辅助容器之前,还包括:根据外部指令确定出是否需要对所述辅助容器进行热升级。在一种示例性实例中,所述将空容器升级为新的辅助容器,包括:在对所述辅助容器进行热升级过程中,将所述空容器的镜像更改为新的辅助容器的镜像。在一种示例性实例中,所述将空容器升级为新的辅助容器时,还包括:对所述环境变量显示的版本进行递增处理。在一种示例性实例中,所述完将原有的辅助容器更改为新的辅助容器对应的空容器,包括:将所述原有的所述辅助容器的镜像更改为所述新的辅助容器对应的空容器的镜像。在一种示例性实例中,所述新的辅助容器启动时,还包括:比较所述新的辅助容器自身的环境变量中记录的版本信息和共享内存中记录的版本信息,如果比较结果显示是接管启动,从共享内存中获取所述原有的辅助容器的业务的相关状态并开始处理新的连接请求;如果比较结果显示不是接管启动,启动相关业务功能监听连接请求,并将所述新的辅助容器自身的版本信息保存至共享内存中。在一种示例性实例中,所述接管启动,包括:在接管中,所述原有的辅助容器和所述新的辅助容器之间通过从所述共享内存中获取的套接字实现通信;或者,通过共享数据卷获取的套接字实现通信,或者直接通过访问本地约定的端口实现通信。在一种示例性实例中,所述新的辅助容器退出时,开始连接套接字的优雅下线,并比较所述新的辅助容器自身的环境变量中记录的版本和所述共享内存中记录的版本信息,如果比较结果显示是被接管,停止接受新的业务请求;如果比较结果显示不是被接管,关闭相关监听连接。本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的辅助容器实现热升级的方法。本申请实施例又提供一种辅助容器实现热升级的设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的辅助容器实现热升级的方法的步骤。本申请实施例再提供一种辅助容器实现热升级的装置,包括:预处理模块、升级模块、处理模块;其中,预处理模块,设置为在应用实例中创建辅助容器和辅助容器对应的空容器;升级模块,设置为需要对辅助容器进行热升级时,将空容器升级为新的辅助容器,并在升级过程中执行切换连接操作;处理模块,设置为完成空容器到新的辅助容器的升级,将原有的辅助容器更改为新的辅助容器对应的空容器。本申请实施例通过为一个辅助容器注入了两个容器即辅助容器和其对应的空容器的方式,避免了原地更新一个容器而导致的流量损失的问题。另外,在完成空容器到新的辅助容器的升级和流量接管后,通过将原有的辅助容器重置为空容器的方式,避免了原有的辅助容器因为进程退出触发容器或者探活重启的问题,也避免了由于原有的辅助容器退出失败而导致的相关进程资源无法清理的问题。本申请实施例提供的辅助容器热升级的方式对容器化的应用有了完整的支持,实现了辅助容器独立热升级,而无需业务感知,从而提升了产品竞争力和用户满意度。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。图1为本申请实施例中辅助容器实现热本文档来自技高网
...

【技术保护点】
1.一种辅助容器实现热升级的方法,包括:/n在应用实例中创建辅助容器和辅助容器对应的空容器;/n需要对辅助容器进行热升级时,将空容器升级为新的辅助容器,并在升级过程中执行切换连接操作;/n完成空容器到新的辅助容器的升级,将原有的辅助容器更改为新的辅助容器对应的空容器。/n

【技术特征摘要】
1.一种辅助容器实现热升级的方法,包括:
在应用实例中创建辅助容器和辅助容器对应的空容器;
需要对辅助容器进行热升级时,将空容器升级为新的辅助容器,并在升级过程中执行切换连接操作;
完成空容器到新的辅助容器的升级,将原有的辅助容器更改为新的辅助容器对应的空容器。


2.根据权利要求1所述的方法,所述在应用实例中创建辅助容器和辅助容器对应的空容器之后,还包括:
对于需要热升级的所述辅助容器,设置热升级标记,用于表示所述辅助容器采用热升级方式。


3.根据权利要求1所述的方法,在所述注入辅助容器时,还包括:
为创建的所述辅助容器设置环境变量,用于标识所述辅助容器的版本;
或者,通过配置文件标识所述辅助容器的版本。


4.根据权利要求1、2或3所述的方法,其中,所述在应用实例中创建辅助容器和辅助容器对应的空容器包括:
在创建Pod注入所述辅助容器时,创建一个真实使用的所述辅助容器,以及一个与该辅助容器对应的所述空容器。


5.根据权利要求1所述的方法,所述将空容器升级为新的辅助容器之前,还包括:
根据外部指令确定出是否需要对所述辅助容器进行热升级。


6.根据权利要求1或5所述的方法,所述将空容器升级为新的辅助容器,包括:
在对所述辅助容器进行热升级过程中,将所述空容器的镜像更改为新的辅助容器的镜像。


7.根据权利要求3所述的方法,所述将空容器升级为新的辅助容器时,还包括:
对所述环境变量显示的版本进行递增处理。


8.根据权利要求1所述的方法,其中,所述完将原有的辅助容器更改为新的辅助容器对应的空容器,包括:
将所述原有的所述辅助容器的镜像更改为所述新的辅助容器对应的空容器的镜像。


9.根据权利要求1所述的方法,所述...

【专利技术属性】
技术研发人员:张振丁宇王思宇
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1