一种滚动升级方法及装置制造方法及图纸

技术编号:27934347 阅读:59 留言:0更新日期:2021-04-02 14:14
本发明专利技术公开了一种滚动升级方法和系统,涉及计算机技术领域。该方法的一具体实施方式包括:在pod中为每个Kubernetes主业务容器添加相应的SideCar辅助容器;对Kubernetes原生的StatefulSet进行扩展,使得扩展后的StatefulSet在做滚动升级时保留pod;将StatefulSet中的MaxUnavailable的值设定为不大于pod的数量,以保持最大不可用的应用实例数不超过MaxUnavailable限定的值;通过编写SideCar使得所述Kubernetes主业务容器与SideCar辅助容器的运维模式解耦;以及在不重建pod的情况下原地升级SideCar辅助容器。该实施方式在做滚动更新的时候不会销毁并且重建pod,从而能够适用于大规模体量的场景,且不会产生不必要的开销,无需占用资源并且具有高亲和特性,同时也避免了网络流量传输的不确定性。

【技术实现步骤摘要】
一种滚动升级方法及装置
本专利技术涉及计算机
,尤其涉及一种具备丰富发布策略、支持原地升级的滚动升级方法及装置。
技术介绍
Kubernetes(简称K8s)作为跨主机集群的开源容器调度平台,提供了以容器为中心的基础架构,并已经成为了容器编排领域的事实标准。然而,在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:在大规模体量的场景下,Kubernetes原生的控制器StatefulSet在做滚动更新(rollingupdate)时会引起大量不必要的开销,导致代价巨大。
技术实现思路
有鉴于此,本专利技术实施例提供一种容器部署方法,其能够以小的代价支持原地升级并且具备丰富的发布策略。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种滚动升级方法,其特征在于,包括:在pod中为每个Kubernetes主业务容器添加相应的SideCar辅助容器;对Kubernetes原生的StatefulSet进行扩展,使得扩展后的StatefulSet在做滚动升级时保留pod;将StatefulSet中的MaxUnavailable的值设定为不大于pod的数量,以保持最大不可用的应用实例数不超过MaxUnavailable限定的值;通过编写SideCar使得所述Kubernetes主业务容器与SideCar辅助容器的运维模式解耦;以及在不重建pod的情况下原地升级SideCar辅助容器。可选地,根据本专利技术的一个方面的方法,其中,以在Kubernetes的主节点中添加控制器模块的方式扩展原生StatefulSet,以控制扩展后的StatefulSet支持原地升级并且允许应用实例被并行升级。可选地,根据本专利技术的一个方面的方法,其中,将StatefulSet中的MaxUnavailable的值设定为不大于1。可选地,根据本专利技术的一个方面的方法,其中,将StatefulSet中的MaxUnavailable的值设定为0。可选地,根据本专利技术的一个方面的方法,其中,所述SideCar辅助容器是monitoring容器。可选地,根据本专利技术的一个方面的方法,其中,所述SideCar辅助容器是logcollection容器。根据本专利技术的另一方面,提供一种滚动升级系统,包括:StatefulSet扩展模块,对Kubernetes原生的StatefulSet进行扩展,使得扩展后的StatefulSet在做滚动升级时保留pod,并且保持滚动升级过程中最大不可用的应用实例数不超过MaxUnavailable限定的值;以及SideCar模块,对于pod中为每个Kubernetes主业务容器添加的SideCar辅助容器,编写SideCar使得所述Kubernetes主业务容器与SideCar辅助容器的运维模式解耦;以及升级执行模块,在不重建pod的情况下原地升级SideCar辅助容器。可选地,根据本专利技术的另一方面的滚动升级系统,其中,所述StatefulSet扩展模块包括控制器,该控制器进行操作以控制扩展后的StatefulSet支持原地升级并且允许应用实例被并行升级。根据本专利技术的又一方面,一种滚动升级装置,包含至少一个处理器以及与所述至少一个处理器耦合的存储器,所述存储器存储有可执行指令;所述可执行指令在被所述至少一个处理器执行时使得实现根据本专利技术的一个方面所述的滚动升级方法。根据本专利技术的又一方面,一种芯片,包含处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行根据本专利技术的一个方面所述的滚动升级方法。根据本专利技术的又一方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如根据本专利技术的一个方面所述的滚动升级方法。根据本专利技术的又一方面,一种计算机程序产品,包含计算机程序指令,该计算机程序指令使得计算机执行根据本专利技术的一个方面所述的滚动升级方法。根据本专利技术的方法,在做滚动更新的时候不会销毁并且重建pod,从而能够适用于大规模体量的场景。具体地,首先,在滚动更新时,由于不删除和重建应用的pod,所以无需进行重新调度,所以即使pod数量巨大,也不会产生不必要的开销,而且无需占用资源并且具有高亲和特性。此外,不重新调度pod使得pod保留了原来的本地状态,进一步减少开销,也不需要重新申请IP,因此即使是依赖IP保持的应用也可以维持正常工作。另外,通过本专利技术的方法,也避免了网络流量传输的不确定性。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是Kubernetes集群架构示意图;图2是根据本专利技术实施例滚动升级系统的主要模块的示意图;图3是根据本专利技术实施例的计算机设备的结构框图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。为了便于说明,首先介绍Kubernetes及Kubernetes集群的相关内容。<关于Kubernetes>作为一款开源的容器操作平台,Kubernetes能够实现对容器的部署、调度以及节点集群间扩展等功能,将配置有Kubernetes环境的物理机节点或虚拟机称作Kubernetes节点。Kubernetes集群通常由多个Kubernetes节点组建而成,可实现对容器的部署和管理。在一个Kubernetes集群内有且只有一套控制单元,如图1所示,即Kubernetes主节点(Master),主要负责调度和管理Kubernetes服务,如分配某个服务的某个容器到某个从节点(Node)上。Kubernetes的Master节点包含四个子组件,分别为数据库(etcd)组件、接口服务(APIServer)组件、调度(scheduler)组件和控制(ControllerManager)组件。除了的作为集群管理节点的Master节点之外,Kubernetes集群还包括多个Kubernetes从节点(node),用于实际运行由Master节点分配的容器。其中,每个node节点都会启动kubelet进程来处理Master节点下发到本节点的任务,管理pod和其中的容器。Kubelet会在APIServer上注册节点信息,定期向master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。Kubernetes项目编排能力的核心在于其声明式API的设计和使用,通过对REST路径下API群组进行CRUD操作(即,增加(Create)、检索(Retrie本文档来自技高网...

【技术保护点】
1.一种滚动升级方法,其特征在于,包括:/n在pod中为每个Kubernetes主业务容器添加相应的SideCar辅助容器;/n对Kubernetes原生的StatefulSet进行扩展,使得扩展后的StatefulSet在做滚动升级时保留pod;/n将StatefulSet中的MaxUnavailable的值设定为不大于pod的数量,以保持最大不可用的应用实例数不超过MaxUnavailable限定的值;/n通过编写SideCar使得所述Kubernetes主业务容器与SideCar辅助容器的运维模式解耦;以及/n在不重建pod的情况下原地升级SideCar辅助容器。/n

【技术特征摘要】
1.一种滚动升级方法,其特征在于,包括:
在pod中为每个Kubernetes主业务容器添加相应的SideCar辅助容器;
对Kubernetes原生的StatefulSet进行扩展,使得扩展后的StatefulSet在做滚动升级时保留pod;
将StatefulSet中的MaxUnavailable的值设定为不大于pod的数量,以保持最大不可用的应用实例数不超过MaxUnavailable限定的值;
通过编写SideCar使得所述Kubernetes主业务容器与SideCar辅助容器的运维模式解耦;以及
在不重建pod的情况下原地升级SideCar辅助容器。


2.根据权利要求1所述的滚动升级方法,其特征在于,其中,
以在Kubernetes的主节点中添加控制器模块的方式扩展原生StatefulSet,以控制扩展后的StatefulSet支持原地升级并且允许应用实例被并行升级。


3.根据权利要求1或2所述的滚动升级方法,其特征在于,其中,
将StatefulSet中的MaxUnavailable的值设定为不大于1。


4.根据权利要求1或2所述的滚动升级方法,其特征在于,其中,
将StatefulSet中的MaxUnavailable的值设定为0。


5.根据权利要求1或2所述的滚动升级方法,其特征在于,其中,
所述SideCar辅助容器是monitoring容器。


6.根据权利要求1或2所述的滚动升级方法,其特征在于,其中,
所述SideCar辅助容器是logcollection容器。


7.一种...

【专利技术属性】
技术研发人员:孙超
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:北京;11

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

1