CN114756261B - 一种容器集群的升级方法、***、电子设备及介质 - Google Patents
一种容器集群的升级方法、***、电子设备及介质 Download PDFInfo
- Publication number
- CN114756261B CN114756261B CN202210288868.0A CN202210288868A CN114756261B CN 114756261 B CN114756261 B CN 114756261B CN 202210288868 A CN202210288868 A CN 202210288868A CN 114756261 B CN114756261 B CN 114756261B
- Authority
- CN
- China
- Prior art keywords
- container
- mirror image
- pod
- version number
- updated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种容器集群的升级方法、***、电子设备及介质,该方法包括:在预设容器平台创建状态集,并根据所述状态集生成若干个Pod,Pod中包括若干个容器;设置镜像次版本号和镜像主版本号;监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;删除待升级Pod中容器,利用拉取的镜像重建容器,完成升级;通过采用该方法解决了现有技术中通过重建臃肿Pod进行应用更新所导致长时间服务不可用的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种容器集群的升级方法、***、电子设备及介质。
背景技术
随着容器技术的快速发展,Kubernetes已经成为容器编排的事实标准,越来越多的企业使用Kubernetes管理容器集群,并进行应用的全生命周期管理。在Kubernetes中,Pod是调度的基本单元,也是所有内置工作负载管理的基本单元。Kubernetes通过重建Pod的方式完成应用更新,这样使得每次重建的Pod都是全新的、干净的应用环境。在应用更新时,一个Pod中可能包含了主业务容器、不可剥离的依赖业务容器以及SideCar组件容器等,这时的Pod就显得非常臃肿。Pod臃肿就会导致Pod的停止时间较长、Pod重新调度后在新宿主机下载镜像的时间较长、应用启动时间长、IP地址发生改变等问题。
发明内容
本发明提供一种容器集群的升级方法、***、电子设备及介质,以解决现有技术中通过重建臃肿Pod进行应用更新所导致长时间服务不可用的问题。
本发明提供的容器集群的升级方法,包括:
在预设容器平台创建状态集,并根据所述状态集生成若干个Pod,所述Pod中包括若干个容器;
设置镜像次版本号和镜像主版本号;
监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;
删除待升级Pod中容器,并利用拉取的镜像重建容器,完成升级。
可选地,所述监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像步骤之前还包括:
将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号。
可选地,所述设将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号步骤之后还包括:
根据更新后的镜像次版本号和所述镜像主版本号确定目标镜像hash值;
获取Pod的镜像hash值,并将所述目标镜像hash值与所述Pod的镜像hash值进行比对;
若所述目标镜像hash值与所述Pod的镜像hash值一致,则升级成功。
可选地,所述容器集群的升级方法还包括:
对所述待升级Pod进行排序,获取排序结果;
根据所述排序结果依次完成每个所述待升级Pod中容器的删除和重建。
可选地,所述设置镜像次版本号和镜像主版本号步骤之后还包括:
接收更新请求数据,并根据所述更新请求数据确定所述待升级Pod中待更新容器的类型,容器类型包括主业务容器和辅助容器;
若所述待更新容器的类型包括辅助容器,则更新所述镜像次版本号;
若所述待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器的目标权重;
若所述目标权重大于预设权重,则对所述镜像主版本号进行更新;
若所述目标权重小于或等于所述预设权重值,则对所述镜像次版本号进行更新。
可选地,所述获取待更新容器中主业务容器的目标权重包括:
获取待更新容器中主业务容器的数量和应用数据;
根据预设数量权重和所述数量获取数量评价参数;
根据预设应用权重和所述应用数据获取应用评价参数;
根据所述数量评价参数和所述应用评价参数确定所述目标权重。
可选地,所述设置镜像次版本号和镜像主版本号步骤之后还包括:
若所述待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器应用数据的数据量;
若所述应用数据的数据量大于预设数据量,则对镜像主版本号进行更新;
若所述应用数据的数据量小于或等于预设数据量,则对镜像次版本号进行更新。
本发明还提供了一种容器集群的升级***,包括:
创建模块,用于在预设容器平台创建状态集,并根据所述状态集生成若干个Pod,所述Pod中包括若干个容器;
版本设置模块,用于设置镜像次版本号和镜像主版本号;
版本监听模块,用于监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;
升级模块,用于删除待升级Pod中容器,并利用拉取的镜像重建容器,完成升级,所述创建模块、所述版本设置模块、所述版本监听模块和所述升级模块相连接。
本发明还提供一种电子设备,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行所述容器集群的升级方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述容器集群的升级方法。
如上所述,本发明提供了一种容器集群的升级方法、***、电子设备及介质,具有以下有益效果:首先在预设容器平台创建状态集,并根据状态集生成若干个Pod,Pod中包括若干个容器;设置镜像次版本号和镜像主版本号;监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;删除待升级Pod中容器,并利用拉取的镜像重建容器,完成升级;通过对待升级Pod中容器的删除与重建,可以只重建Pod中的部分容器不需要重建Pod,解决了现有技术中通过重建臃肿Pod进行应用更新所导致长时间服务不可用的问题;无需迁移生产环境中现存的有状态应用,节省迁移工作量和迁移风险。本方法只是对原生工作负载如状态集功能扩展,不会影响原生工作负载的现有功能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中容器集群的升级方法的流程示意图;
图2是本发明实施例中待升级Pod的更新方法的流程示意图;
图3是本发明实施例中容器集群的升级***的结构示意图;
图4是本发明实施例中电子设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1是本发明在一实施例中提供的容器集群的升级方法的流程示意图。
如图1所示,容器集群的升级方法,包括步骤S110-S140:
S110,在预设容器平台创建状态集,并根据状态集生成若干个Pod,Pod中包括若干个容器;
S120,设置镜像次版本号和镜像主版本号;
S130,监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;
S140,删除待升级Pod中容器,并利用拉取的镜像重建容器,完成升级。
在本实施例的步骤S110中,预设容器平台包括Kubernetes。在Kubernetes创建状态集,然后根据状态集生成若干个Pod(一组Pod),一个Pod中包括多个容器,一个Pod中包括主业务容器和辅助业务容器。
在本实施例的步骤S120中,状态集包括元数据和配置信息,配置信息包括镜像主版本数据,镜像主版本数据包括镜像主版本号,在状态集的配置信息中设置镜像主版本号,创建状态集时设置spec.containers[*].image为镜像主版本号。初始镜像主版本数据包括镜像主版本数据和镜像次版本数据。根据初始镜像主版本数据向元数据中添加镜像次版本数据,镜像次版本数据包括镜像次版本号,在状态集的元数据中设置镜像次版本号。
在一实施例中,可以采用原地升级组件(inplace-operator)对状态集进行纳管,具体地,通过在元数据注释(metadata.annotations)中添加字段inplace.addition-managed-by:inplace-operator,表示状态集由原地升级组件纳管;还通过在metadata.annotations增加字段inplace.minor-version:v0.0.1,实现在元数据中添加镜像次版本数据,inplace.minor-version:v0.0.1代表镜像次版本号,原地升级组件会监听镜像次版本数据。本方法的程序部署过程中对现存业务无感知,对于新业务可选择被程序纳管,减少对业务的侵入性。
在本实施例的步骤S130中,可以通过原地升级组件监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像。监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像步骤之前还包括:将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号。
在一实施例中,将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号的具体实现方法包括:接收更新请求数据,并根据更新请求数据确定待升级Pod中待更新容器的类型,容器类型包括主业务容器和辅助容器;若待更新容器的类型包括辅助容器,则将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号。更新请求数据根据用户发出的请求进行确定,更新请求数据可以用于描述Pod中容器所实现的功能。
在一实施例中,将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号的步骤还包括:若待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器的目标权重;若目标权重大于预设权重,则对镜像主版本数据进行更新;若主业务容器的目标权重小于或等于预设权重,则将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号。获取目标待更新容器中主业务容器的目标权重的具体实现方法包括;获取待更新容器中主业务容器的数量和应用数据;根据预设数量权重和数量获取数量评价参数;根据预设应用权重和应用数据获取应用评价参数;根据数量评价参数和应用评价参数确定目标权重;应用数据用于描述实现容器功能的数据。预设权重、预设数量权重和预设应用权重均可以根据创建的状态集的目标需求数据进行设定,目标需求数据用于描述实现状态集主要功能的数据。通过待更新容器中主容器的数量和应用数据共同确定目标权重,并根据目标权重判断是否进行镜像主版本号的更新,避免了只通过重建臃肿Pod进行应用更新所导致长时间服务不可用的问题。
目标权重的数学表达为:
A=A1*B1+A2*B2;
其中,A为目标权重,A1为预设应用权重,B1为应用数据,A2为预设数量权重,B2为待更新容器中主业务容器的数量;A1*B1为数量评价参数,A2*B2为应用评价参数。
在一实施例中,将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号的步骤还包括:若待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器的数量;若数量大于与预设数量,则对镜像主版本号进行更新;若主业务容器的数量小于或等于预设数量,则对镜像次版本号进行更新。预设数量根据创建的状态集的目标需求数据进行设定。
在一实施例中,将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号的步骤还包括:若待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器的应用数据;若主业务容器的应用数据不符合预设条件,则对镜像主版本号进行更新;若主业务容器的应用数据符合预设条件,则对镜像次版本号进行更新。具体地,应用数据用于描述实现容器功能的数据,根据状态集的目标需求数据和主业务容器的功能数据的匹配程度生成目标功能数据。预设条件为预设数据量,预设数据量根据创建的状态集的目标需求数据进行设定。若主业务容器的应用数据的数据量大于预设数据量,则对镜像主版本号进行更新;若主业务容器的应用数据的数据量小于或等于预设数据量,则对镜像次版本号进行更新。
在本实施例的步骤S140中,在删除待升级Pod中容器步骤中删除的容器为需要进行更新的容器即待更新容器,重建为目标容器的重建。在步骤删除待升级Pod中容器,并利用拉取的镜像重建容器之后还需要验证待升级pod是否完成升级成功。可选地,可以通过目标镜像hash值和Pod的镜像hash值来确认待升级pod是否升级成功,其中,Pod的镜像hash值为待升级pod升级后的Pod的镜像hash值。具体地,根据更新后的镜像次版本号和镜像主版本号确定目标镜像hash值;获取Pod的镜像hash值,并将目标镜像hash值与Pod的镜像hash值进行比对;若目标镜像hash值与Pod的镜像hash值一致,则升级成功。若目标镜像hash值与Pod的镜像hash值不一致,则对待升级Pod进行重新升级(即删除待升级Pod中容器,并利用拉取的镜像重建容器),直至Pod的镜像hash值和目标镜像hash值一致。通过目标镜像hash值和Pod的镜像hash值对待升级Pod的升级状态进行验证,实现了对待升级Pod升级状态的诊断,避免了待升级Pod升级不成功所导致的数据异常问题。
在一实施例中,还需要对待升级Pod进行更新,从而实现升级过程,待升级Pod的更新方法请参见图2,图2是本发明在一实施例中待升级Pod的更新方法的流程示意图。
如图2所示,待升级Pod的更新方法可以包括以下步骤S210-S220:
S210,对待升级Pod进行排序,获取排序结果;
S220,根据排序结果依次完成每个待升级Pod的容器删除和重建。
在一实施例中,可以根据待升级Pod的生成顺序对待升级Pod进行排序。也可以采用其他方式对待升级Pod进行排序。根据排序结果依次完成一个待升级Pod的容器删除和重建后,再对下一个待升级Pod的容器删除和重建。其中,容器删除为待更新容器的删除,重建为目标容器的重建。只需要重建目标容器,不需要重建Pod,解决了现有技术中通过重建臃肿Pod进行应用更新所导致长时间服务不可用的问题;无需迁移生产环境中现存的有状态应用,节省迁移工作量和迁移风险。
本施例提供了一种容器集群的升级方法,该方法首先在预设容器平台创建状态集,并根据状态集生成若干个Pod,Pod中包括若干个容器;设置镜像次版本号和镜像主版本号;监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;删除待升级Pod中容器,并利用拉取的镜像重建容器,完成升级;通过对待升级Pod中容器的删除与重建,可以只重建Pod中的部分容器不需要重建Pod,解决了现有技术中通过重建臃肿Pod进行应用更新所导致长时间服务不可用的问题;无需迁移生产环境中现存的有状态应用,节省迁移工作量和迁移风险。通过目标镜像hash值和Pod的镜像hash值对待升级Pod的升级状态进行验证,实现了对待升级Pod升级状态的诊断,避免了待升级Pod升级不成功所导致的数据异常问题。本方法只是对原生工作负载如状态集功能扩展,不会影响原生工作负载的现有功能。
基于与容器集群的升级方法相同的发明构思,相应的,本实施例还提供了一种容器集群的升级***。在本实施例中,该容器集群的升级***执行上述任一实施例所述的容器集群的升级方法,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图3为本发明提供的容器集群的升级***的结构示意图。
如图3所示,所示容器集群的升级***包括:31创建模块、32版本设置模块、33版本监听模块以及34升级模块。
其中,创建模块,用于在预设容器平台创建状态集,并根据状态集生成若干个Pod,Pod中包括若干个容器;
版本设置模块,用于设置镜像次版本号和镜像主版本号;
版本监听模块,用于监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;
升级模块,用于删除待升级Pod中容器,并利用拉取的镜像重建容器,完成升级,创建模块、版本设置模块、版本监听模块和升级模块相连接。
在一些示例性实施例中,容器集群的升级***还包括:
第一次版本更新模块,用于将待更新版本镜像存储于镜像仓库,并更新镜像次版本号。
在一些示例性实施例中,容器集群的升级***还包括:
升级验证模块,用于根据更新后的镜像次版本号和镜像主版本号确定目标镜像hash值;获取Pod的镜像hash值,并将目标镜像hash值与Pod的镜像hash值进行比对;若目标镜像hash值与Pod的镜像hash值一致,则升级成功。
在一些示例性实施例中,容器集群的升级***还包括:
容器类型确定模块,用于根据更新后的镜像此版本号确定待升级Pod中待更新容器的类型,容器类型包括主业务容器和辅助容器;
第二次版本更新模块,用于若待更新容器的类型包括辅助容器,则更新镜像次版本号。
在一些示例性实施例中,容器集群的升级***还包括:
排序模块,用于对待升级Pod进行排序,获取排序结果;
Pod更新模块,用于根据排序结果依次完成每个待升级Pod中容器的删除和重建。
在一些示例性实施例中,容器集群的升级***还包括:
目标权重获取模块,用于若待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器的目标权重;
主版本更新模块,用于若目标权重大于预设权重,则对镜像主版本号进行更新;
第三次版本更新模块,用于若主业务容器的目标权重小于或等于预设权重值,则对镜像次版本号进行更新。
在一个实施例中,请参见图4,本实施例还提供了一种电子设备400,包括存储器401、处理器402及存储在存储器上并可在处理器上运行的计算机程序,所述处理器402执行所述计算机程序时实现如上任一项实施例所述方法的步骤。
本实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供的电子设备,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子设备执行如上方法的各个步骤。
在本实施例中,存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,说明书对“本实施例”、“一实施例”、“另一实施例”、“在一些示例性实施例”或“其他实施例”的提及表示结合实施例说明的特定特征、结构或特性包括在至少一些实施例中,但不必是全部实施例。“本实施例”、“一实施例”、“另一实施例”的多次出现不一定全部都指代相同的实施例。
在上述实施例中,尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变形对本领域普通技术人员来说将是显而易见的。例如,其他存储结构(例如,动态RAM(DRAM))可以使用所讨论的实施例。本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述地比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (7)
1.一种容器集群的升级方法,其特征在于,包括:
在预设容器平台创建状态集,并根据所述状态集生成若干个Pod,所述Pod中包括若干个容器;
设置镜像次版本号和镜像主版本号;
接收更新请求数据,并根据所述更新请求数据确定待升级Pod中待更新容器的类型,容器类型包括主业务容器和辅助容器;
若所述待更新容器的类型包括辅助容器,则更新所述镜像次版本号;
若所述待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器的目标权重;所述获取待更新容器中主业务容器的目标权重包括:获取待更新容器中主业务容器的数量和应用数据;根据预设数量权重和所述数量获取数量评价参数;根据预设应用权重和所述应用数据获取应用评价参数;根据所述数量评价参数和所述应用评价参数确定所述目标权重;
若所述目标权重大于预设权重,则对所述镜像主版本号进行更新;
若所述目标权重小于或等于所述预设权重,则对所述镜像次版本号进行更新;
或
若所述待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器应用数据的数据量;
若所述应用数据的数据量大于预设数据量,则对镜像主版本号进行更新;
若所述应用数据的数据量小于或等于预设数据量,则对镜像次版本号进行更新;
监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;
删除待升级Pod中容器,并利用拉取的镜像重建容器,完成升级。
2.根据权利要求1所述的容器集群的升级方法,其特征在于,所述监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像步骤之前还包括:
将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号。
3.根据权利要求2所述的容器集群的升级方法,其特征在于,所述将待更新版本镜像存储于所述镜像仓库,并更新镜像次版本号步骤之后还包括:
根据更新后的镜像次版本号和所述镜像主版本号确定目标镜像hash值;
获取Pod的镜像hash值,并将所述目标镜像hash值与所述Pod的镜像hash值进行比对;
若所述目标镜像hash值与所述Pod的镜像hash值一致,则升级成功。
4.根据权利要求1所述的容器集群的升级方法,其特征在于,所述容器集群的升级方法还包括:
对所述待升级Pod进行排序,获取排序结果;
根据所述排序结果依次完成每个所述待升级Pod中容器的删除和重建。
5.一种容器集群的升级***,其特征在于,包括:
创建模块,用于在预设容器平台创建状态集,并根据所述状态集生成若干个Pod,所述Pod中包括若干个容器;
版本设置模块,用于设置镜像次版本号和镜像主版本号;
确定模块,用于接收更新请求数据,并根据所述更新请求数据确定待升级Pod中待更新容器的类型,容器类型包括主业务容器和辅助容器;
更新模块,用于若所述待更新容器的类型包括辅助容器,则更新所述镜像次版本号;
获取模块,用于若所述待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器的目标权重;所述获取待更新容器中主业务容器的目标权重包括:获取待更新容器中主业务容器的数量和应用数据;根据预设数量权重和所述数量获取数量评价参数;根据预设应用权重和所述应用数据获取应用评价参数;根据所述数量评价参数和所述应用评价参数确定所述目标权重;
所述更新模块,还用于若所述目标权重大于预设权重,则对所述镜像主版本号进行更新;
所述更新模块,还用于若所述目标权重小于或等于所述预设权重,则对所述镜像次版本号进行更新;
或
所述获取模块,还用于若所述待更新容器的类型包括主业务容器,则获取待更新容器中主业务容器应用数据的数据量;
所述更新模块,还用于若所述应用数据的数据量大于预设数据量,则对镜像主版本号进行更新;
所述更新模块,还用于若所述应用数据的数据量小于或等于预设数据量,则对镜像次版本号进行更新;
版本监听模块,用于监听镜像次版本号是否发生变化,若是,则从镜像仓库拉取镜像;
升级模块,用于删除待升级Pod中容器,并利用拉取的镜像重建容器,完成升级,所述创建模块、所述版本设置模块、所述版本监听模块和所述升级模块相连接。
6.一种电子设备,其特征在于,包括处理器、存储器和通信总线;
所述通信总线用于将所述处理器和存储器连接;
所述处理器用于执行所述存储器中存储的计算机程序,以实现如权利要求1-4中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序用于使所述计算机执行如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210288868.0A CN114756261B (zh) | 2022-03-23 | 2022-03-23 | 一种容器集群的升级方法、***、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210288868.0A CN114756261B (zh) | 2022-03-23 | 2022-03-23 | 一种容器集群的升级方法、***、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114756261A CN114756261A (zh) | 2022-07-15 |
CN114756261B true CN114756261B (zh) | 2023-04-18 |
Family
ID=82327865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210288868.0A Active CN114756261B (zh) | 2022-03-23 | 2022-03-23 | 一种容器集群的升级方法、***、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114756261B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116603245B (zh) * | 2023-07-21 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 程序版本调整方法、装置、设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880816A (zh) * | 2020-07-24 | 2020-11-03 | 北京浪潮数据技术有限公司 | Kubernetes工作负载升级方法、装置及设备 |
CN112799777A (zh) * | 2020-12-31 | 2021-05-14 | 杭州朗澈科技有限公司 | 一种流水线中预热调度的方法 |
CN113297031A (zh) * | 2021-05-08 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 容器集群中的容器组防护方法及装置 |
CN113342457A (zh) * | 2020-03-02 | 2021-09-03 | 中科星图股份有限公司 | 基于Eureka服务注册与发现的Kubernetes调度方法 |
CN113590146A (zh) * | 2021-06-04 | 2021-11-02 | 聚好看科技股份有限公司 | 服务器及容器升级方法 |
US11275573B1 (en) * | 2019-07-30 | 2022-03-15 | Intuit Inc. | Intelligent rolling update of a cluster of servers via container orchestration |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6781126B2 (ja) * | 2017-09-22 | 2020-11-04 | 日本電信電話株式会社 | 仮想マシン設定投入システム、仮想マシン設定投入方法、及びプログラム |
CN111258609B (zh) * | 2020-01-19 | 2023-08-01 | 北京百度网讯科技有限公司 | Kubernetes集群的升级方法、装置、电子设备和介质 |
US11474851B2 (en) * | 2020-04-08 | 2022-10-18 | Open Text Holdings, Inc. | Systems and methods for efficient scalability and high availability of applications in container orchestration cloud environment |
CN111666088A (zh) * | 2020-06-07 | 2020-09-15 | 中信银行股份有限公司 | Pod的更替方法、装置、电子设备及计算机可读存储介质 |
CN112783646A (zh) * | 2021-01-13 | 2021-05-11 | 中国工商银行股份有限公司 | 有状态应用容器化部署方法及装置 |
CN113031993A (zh) * | 2021-04-26 | 2021-06-25 | 中国工商银行股份有限公司 | 基于集群容器的应用升级方法及装置 |
-
2022
- 2022-03-23 CN CN202210288868.0A patent/CN114756261B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11275573B1 (en) * | 2019-07-30 | 2022-03-15 | Intuit Inc. | Intelligent rolling update of a cluster of servers via container orchestration |
CN113342457A (zh) * | 2020-03-02 | 2021-09-03 | 中科星图股份有限公司 | 基于Eureka服务注册与发现的Kubernetes调度方法 |
CN111880816A (zh) * | 2020-07-24 | 2020-11-03 | 北京浪潮数据技术有限公司 | Kubernetes工作负载升级方法、装置及设备 |
CN112799777A (zh) * | 2020-12-31 | 2021-05-14 | 杭州朗澈科技有限公司 | 一种流水线中预热调度的方法 |
CN113297031A (zh) * | 2021-05-08 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 容器集群中的容器组防护方法及装置 |
CN113590146A (zh) * | 2021-06-04 | 2021-11-02 | 聚好看科技股份有限公司 | 服务器及容器升级方法 |
Non-Patent Citations (2)
Title |
---|
余昌发 ; 程学林 ; 杨小虎 ; .基于Kubernetes的分布式TensorFlow平台的设计与实现.计算机科学.2018,(第S2期),全文. * |
田源 ; 李樊 ; 汪晓臣 ; 赵伟慧 ; 黄志威 ; .Docker技术在乘客信息***部署中的应用.铁路计算机应用.2019,(第05期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114756261A (zh) | 2022-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413288B (zh) | 应用部署方法、装置、服务器及存储介质 | |
US11442830B2 (en) | Establishing and monitoring programming environments | |
JP2012520504A (ja) | デバイスおよびウェブ・サービスにわたってブラウザー・キャッシュを同期させるためのプログラミング・モデル | |
KR20140129042A (ko) | 어플리케이션 설치 | |
CN107291481B (zh) | 一种组件更新方法、装置和*** | |
CN106951284B (zh) | 基于安卓***应用的用户界面升级方法、装置及智能终端 | |
CN112965761B (zh) | 一种数据处理方法、***、电子设备及存储介质 | |
CN113791765A (zh) | 云服务的资源编排方法、装置、设备及存储介质 | |
CN114756261B (zh) | 一种容器集群的升级方法、***、电子设备及介质 | |
CN106326777A (zh) | 一种***镜像文件的签名方法、客户端、服务器以及*** | |
CN115220767A (zh) | 一种软件升级方法、***、电子设备及存储介质 | |
CN115129574A (zh) | 一种代码测试方法和装置 | |
CN111782251A (zh) | 一种软件功能模块的更新方法、装置及计算机设备 | |
CN110096295B (zh) | 基于ReactNative的多模块移动应用的热更新方法及*** | |
CN111857736B (zh) | 云计算产品的生成方法、装置、设备及存储介质 | |
CN107436790A (zh) | 一种组件升级管理方法及装置 | |
CN108008984A (zh) | 一种资源文件下载更新方法及装置 | |
CN114428691A (zh) | 应用调用方法、装置、电子设备和计算机可读存储介质 | |
CN111385334B (zh) | 一种数据配送方法、装置、设备及存储介质 | |
CN113222174B (zh) | 模型管理方法及装置 | |
CN110390064A (zh) | 文件更新方法、装置和***,存储介质及电子装置 | |
CN110874238A (zh) | 一种线上业务更新方法及其装置 | |
CN117112500B (zh) | 一种资源管理方法、装置、设备和存储介质 | |
CN113835846B (zh) | k8s集群的创建方法、装置及计算机可读存储介质 | |
CN116301934A (zh) | 软件安装方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |