CN113626054A - 一种业务服务更新方法及装置 - Google Patents
一种业务服务更新方法及装置 Download PDFInfo
- Publication number
- CN113626054A CN113626054A CN202110934969.6A CN202110934969A CN113626054A CN 113626054 A CN113626054 A CN 113626054A CN 202110934969 A CN202110934969 A CN 202110934969A CN 113626054 A CN113626054 A CN 113626054A
- Authority
- CN
- China
- Prior art keywords
- pod
- state
- service
- instruction
- node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012217 deletion Methods 0.000 claims abstract description 22
- 230000037430 deletion Effects 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 69
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- 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
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/45595—Network integration; Enabling network access in virtual machine instances
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)
Abstract
本申请提出了一种业务服务更新方法及装置,用以解决现有技术中,在业务服务进行更新时删除旧版本的pod导致运行数据丢失的问题。所述方法包括:管理节点接收更新指令,更新指令用于指示将第一业务服务功能更新为第二业务服务功能;管理节点向管理所管理的业务节点发送删除指令,删除指令用于指示将第一pod删除,第一pod为业务节点中用于提供第一业务服务功能的pod;管理节点向第一pod包括的至少一个容器指示第一pod的状态由运行状态更新为终止状态,终止状态用于第一pod包括的至少一个容器存储自身的运行数据。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种业务服务更新方法及装置。
背景技术
当业务服务部署在容器云集群,例如Kubernetes的容器云集群下时,Kubernetes集群中的控制器会创建多副本的pod,每个pod包含至少一个容器,由至少一个容器运行业务服务。
现有技术中,当业务服务进行升级时,Kubernetes集群中的控制器会删除用于提供旧版本的业务服务功能的旧版本的pod,重新创建新的pod用来提供新版本的业务服务功能。但是,如果在删除旧版本的pod时,旧版本的pod正在运行,那么就会导致运行出现错误。
发明内容
本申请实施例提供了一种业务服务更新方法及装置,用以解决现有技术中业务服务更新时删除旧版本的pod导致pod中的数据丢失的问题。
第一方面,本申请实施例提供了一种业务服务更新方法,包括:
管理节点接收更新指令,所述更新指令用于指示将第一业务服务功能更新为第二业务服务功能;
所述管理节点向所述管理所管理的业务节点发送删除指令,所述删除指令用于指示将第一pod删除,所述第一pod为所述业务节点中用于提供所述第一业务服务功能的pod;
所述管理节点向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态,所述终止状态用于所述第一pod包括的至少一个容器存储自身的运行数据。
基于上述方案,pod中的容器可以根据管理节点的指示获知到pod的状态变化,那就可以在pod被删除之前,将自身的运行数据进行存储,避免出现运行错误的情况。
在一些实施例中,所述管理节点向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态,包括:
所述管理节点将所述第一pod包括的至少一个容器挂载的第一配置文件包括的第一pod的状态由运行状态更新为终止状态。
基于上述方案,管理节点通过在第一pod包括的至少一个容器挂载的第一配置文件中更新第一pod的状态,来向至少一个容器指示第一pod的状态,由于至少一个容器可以实时检测自身挂载的第一配置文件中记录的第一pod的状态,所以通过这种指示方法,可以使得第一pod包括的至少一个容器能够及时的发现第一pod的状态发生变化。
在一些实施例中,在所述管理节点接收所述更新指令之后,所述方法还包括:
所述管理节点向所述业务节点发送创建指令,所述创建指令用于指示创建第二pod,所述第二pod为所述业务节点中用于提供所述第二业务服务功能的pod,所述第二pod包括至少一个容器;
所述管理节点创建所述第二pod包括的至少一个容器挂载的第二配置文件,并在所述第二配置文件中添加所述第二pod的状态为运行状态;
所述管理节点向所述业务节点发送所述第二配置文件。
基于上述方案,管理节点在下发创建第二pod的指令后,为第二pod创建用于第二pod包括的至少一个容器挂载的第二配置文件,并在第二配置文件中添加第二pod的状态,使得第二pod包括的至少一个容器可以及时知晓第二pod的状态。
第二方面,本申请实施例提供了另一种业务服务更新方法,包括:
业务节点接收来自管理节点的删除指令;所述删除指令用于指示将所述业务节点中用于提供第一业务服务功能的第一pod删除;
所述业务节点根据所述删除指令在设定时长后删除所述第一pod;
所述第一pod包括的至少一个容器在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态时,在所述设定时长内将自身的运行数据存储于所述业务节点。
在一些实施例中,所述第一pod包括的至少一个容器在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态,包括:
所述第一pod包括的至少一个容器在所述设定时长内确定挂载的第一配置文件包括的所述第一pod的状态由运行状态更新为终止状态;所述第一配置文件中包括的所述第一pod的状态是由所述管理节点更新的。
在一些实施例中,所述方法还包括:
所述业务节点接收来自所述管理节点的创建指令,所述创建指令用于指示创建用于提供第二业务服务功能的第二pod;
所述业务节点根据所述创建指令创建所述第二pod,所述第二pod中包括至少一个容器;
所述业务节点接收来自所述管理节点的第二配置文件,将所述第二配置文件挂载到所述第二pod包括的至少一个容器中;所述第二配置文件包括所述第二pod的状态为运行状态。
第三方面,本申请实施例提供了一种业务服务更新装置,包括:
服务接口,用于接收更新指令,所述更新指令用于指示将第一业务服务功能更新为第二业务服务功能;
所述服务接口,还用于向所述装置所管理的业务节点发送删除指令,所述删除指令用于指示将第一pod删除,所述第一pod为所述业务节点中用于提供所述第一业务服务功能的pod;
控制器,用于向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态,所述终止状态用于所述第一pod包括的至少一个容器存储自身的运行数据。
在一些实施例中,所述控制器,在向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态时,具体用于:
将所述第一pod包括的至少一个容器挂载的第一配置文件包括的第一pod的状态由运行状态更新为终止状态。
在一些实施例中,在所述服务接口接收所述更新指令之后,
所述服务接口,还用于向所述业务节点发送创建指令,所述创建指令用于指示创建第二pod,所述第二pod为所述业务节点中用于提供所述第二业务服务功能的pod,所述第二pod包括至少一个容器;
所述控制器,还用于创建所述第二pod包括的至少一个容器挂载的第二配置文件,并在所述第二配置文件中添加所述第二pod的状态为运行状态;
所述服务接口,还用于向所述业务节点发送所述第二配置文件。
第四方面,本申请实施例提供了另一种业务服务更新装置,包括代理组件和第一pod:
所述代理组件,用于接收来自管理节点的删除指令;所述删除指令用于指示将所述业务节点中用于提供第一业务服务功能的第一pod删除;
所述代理组件,根据所述删除指令在设定时长后删除所述第一pod;
所述第一pod包括的至少一个容器,还用于在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态时,在所述设定时长内将自身的运行数据存储于所述业务节点。
在一些实施例中,所述第一pod包括的至少一个容器,在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态时,具体用于:
在所述设定时长内确定挂载的第一配置文件包括的所述第一pod的状态由运行状态更新为终止状态;所述第一配置文件中包括的所述第一pod的状态是由所述管理节点更新的。
在一些实施例中,所述代理组件还用于:
接收来自所述管理节点的创建指令,所述创建指令用于指示创建用于提供第二业务服务功能的第二pod;
根据所述创建指令创建所述第二pod,所述第二pod中包括至少一个容器;
接收来自所述管理节点的第二配置文件;
将所述第二配置文件挂载到所述第二pod包括的至少一个容器中;所述第二配置文件包括所述第二pod的状态为运行状态。
第五方面,本申请实施例提供了一种业务功能更新系统,包括:
管理节点,用于接收更新指令,所述更新指令用于指示将第一业务服务功能更新为第二业务服务功能;
所述管理节点,还用于向所述管理所管理的业务节点发送删除指令,所述删除指令用于指示将第一pod删除,所述第一pod为所述业务节点中用于提供所述第一业务服务功能的pod;
业务节点,用于接收所述删除指令,根据所述删除指令在设定时长后删除所述第一pod;
所述管理节点,还用于向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态;
所述业务节点,还用于在设定时长内将所述第一pod包括的至少一个容器的运行数据进行存储。
在一些实施例中,所述管理节点,在向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态时,具体用于:
将所述第一pod包括的至少一个容器挂载的第一配置文件包括的第一pod的状态由运行状态更新为终止状态。
在一些实施例中,所述管理节点,还用于向所述业务节点发送创建指令,所述创建指令用于指示创建第二pod,所述第二pod为所述业务节点中用于提供所述第二业务服务功能的pod;
所述业务节点,还用于接收所述创建指令,根据所述创建指令创建所述第二pod,所述第二pod包括至少一个容器;
所述管理节点,还用于创建所述第二pod包括的至少一个容器挂载的第二配置文件,并在所述第二配置文件中添加所述第二pod的状态为运行状态;
所述管理节点,还用于向所述业务节点发送所述第二配置文件;
所述业务节点,还用于接收所述第二配置文件,将所述第二配置文件挂载到所述第二pod包括的至少一个容器中。
第六方面,本申请实施例提供了另一种业务服务更新装置,包括存储器以及处理器;
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第一方面或者第二方面的任一实现方式中的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述方法。
另外,第二方面至第七方面中任一种实现方式所带来的技术效果可参见第一方面不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种业务服务更新系统的架构示意图;
图2为本申请实施例提供的一种业务服务更新方法流程图;
图3为本申请实施例提供的一种更新configmap的架构示意图;
图4为本申请实施例提供的另一种业务服务更新方法流程图;
图5A为本申请实施例提供的一种用于实现业务服务更新的装置示意图;
图5B为本申请实施例提供的另一种用于实现业务服务更新的装置示意图;
图5C为本申请实施例提供的另一种用于实现业务服务更新的装置示意图;
图6为本申请实施例提供的另一种用于实现业务服务更新的装置示意图。
具体实施方式
为使本申请的目的、实施方式和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请所附权利要求保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
图1示出了本申请提供的一种业务服务更新系统的架构示意图。应理解,本申请实施例并不限于图1所示的系统中,此外,图1中的装置可以是硬件,也可以是从功能上划分的软件或者以上二者结合后的结构。如图1所示,本申请提供的业务服务更新系统中包括管理节点100,业务节点200,以及业务节点200中包括的第一pod210和第二pod220。第一pod中包含至少一个容器以及第二pod中包含至少一个容器。
首先,管理节点100的功能包括:管理和维护系统中包含的至少一个pod、系统中的任务调配(即根据业务节点的资源剩余情况,完成任务的部署,以实现系统中各个业务节点负载均衡)、提供服务接口(API Server)以及保存系统中各个节点的配置信息和负载变化情况等等。本申请提出的管理节点100的功能可以由服务器来实现,也可以由服务器集群来实现,本申请对此不作具体限定。可选地,管理节点100中还可以包含多种组件,用以实现上述功能,例如:
(1)服务接口:可选地,服务接口可以是API server,后续将以API server为例进行介绍。负责对外提供表述性状态转移(Restful)接口服务,管理节点100中的其他组件可以通过API server实现各自的功能,例如,通过API server实现监控各个业务节点的负载情况,或者通过API server实现pod或者容器的删除、新增或者查看等操作。
(2)状态存储(ETCD):一个采用键值对的方式存储数据的数据库,用于保存系统中所有的网络配置和资源对象的状态信息(例如,某一个业务节点的剩余资源情况),也就是保存了整个系统的状态。
(3)调度器(Scheduler):用于监控新建pod副本信息,并通过资源调度算法为需要部署的该新建pod选择一个最合适的业务节点进行部署。部署成功之后,会将pod的信息与其部署的业务节点的信息进行绑定,并存储在ETCD中。
(4)控制器管理组件(Controller Manager):负责管理执行各种功能的控制器(controller)。controller负责维护系统的状态,例如故障检测、自动扩展或者滚动升级等。例如,当系统中某个节点上部署的某一个pod的状态发生变化,controller是可以监测到的。
其次,业务节点200,用于为多个pod(或者可以说多个容器)提供运行环境,主要的功能包括:负责pod的创建、启停等操作,负责将接收到的请求转发到具体地某一个pod上。需要说明的是,业务节点200的功能也可以由一个服务器或者服务器集群来实现。可选地,业务节点200中还可以包括用于实现上述功能的组件,例如:
(1)代理组件(比如可以是kubelet):负责监听和管理各个pod的生命周期,还用于实现pod的创建、删除、启动或者停止等操作。
(2)请求转发组件(kube-proxy):负责将接收到的请求转发到具体的某一个pod上。
进一步地,第一pod210(或者第二pod220)为系统中的最小运行单元,一个pod中可以包含一个容器,也可以包含多个容器。用于接收来自终端的业务请求,实现对应的业务服务功能。在系统中,每一个pod都会被分配一个唯一的IP地址。一个pod中的所有容器共享网络空间(包括IP地址和端口)。pod的状态包括:
(1)等待状态(pending):用于指示管理节点已经接收到创建pod的指令,但是还未创建完成。
(2)运行状态(running):用于指示pod已经创建完成,并已经与业务节点绑定,并且已经包含有至少一个容器。其包含的至少一个容器最后那过至少有一个容器正在运行或者正在启动。
(3)终止状态(terminating):用于指示pod已经停止接收请求提供服务,并且在限定时间后即将被删除。
(4)未知状态(unknown):用于指示pod由于某种原因失联,管理节点无法获取其状态信息。
需要说明的是,图1仅作为一种示例,本申请对于业务服务更新系统中包含的管理节点、业务节点、pod、容器的数量不作具体限定。
在现有技术中,当需要更新业务服务时,管理节点会控制相应的业务节点将用于提供旧版本业务服务功能的旧版本pod删除,并创建新的pod提供新版本的业务服务功能。但是删除旧版本的pod的同时也会将pod的运行数据删除,导致数据丢失。本申请提供了一种业务服务更新方法,管理节点在进行控制业务节点删除旧版本的pod时,会将旧版本的pod的状态指示给旧版本的pod包括的容器,由此旧版本的pod包括的容器就会知晓旧版本pod的状态发生变化,在旧版本的pod被删除之前,将自身的运行数据存储到业务节点中,避免数据丢失。
参见图2,本申请实施例提供了一种业务服务更新方法流程图,具体包括:
201,管理节点接收更新指令。
更新指令用于指示将第一业务服务功能更新为第二业务服务功能。
可选地,管理节点接收到的更新指令可以是由管理人员触发的。
202,管理节点向业务节点发送删除指令。
其中,删除指令用于指示将业务节点包括的第一pod删除,第一pod为业务节点中用于提供第一业务服务功能的pod。
203,业务节点接收删除指令,根据删除指令在设定时长后删除第一pod。
作为一种可选的方式,业务节点在接收到删除指令后,可以先将第一pod从路由中删除,即控制第一pod不再接收业务请求,使得第一pod停止提供第一业务服务功能。并在达到设定时长后,将第一pod删除,例如,可以在接收到删除之后的30s后将第一pod删除。
204,管理节点向第一pod包括的至少一个容器指示第一pod的状态由运行状态更新为终止状态。
需要说明的是,步骤204与步骤202没有先后顺序,都是在管理节点接收到更新指令之后执行的,可以同步进行。
管理节点在接收到更新指令之后,可以确定第一pod的状态由运行状态变为终止状态,并可以将该状态变化情况指示给第一pod包括的至少一个容器。作为一种可选的方式,管理节点接收到更新指令之后,可以通过第一pod包括的至少一个容器中挂载的第一配置文件(configmap)将第一pod的状态指示给第一pod包括的至少一个容器。例如,管理节点可以将第一pod包括的至少一个容器中挂载的第一configmap中记载的第一pod的状态由运行(running)状态更新为终止(terminating)状态。那么由于第一pod包括的至少一个容器都挂载第一configmap,并且可以实时检测第一configmap中记录的第一pod的状态是否发生变化。所以当管理节点将第一configmap更新后,第一pod包括的至少一个容器可以及时地获知第一pod的状态更新为终止状态。
205,第一pod包括的至少一个容器在设定时长内将自身的运行数据存储到业务节点中。
第一节点包括的至少一个容器在设定时长内确定第一pod的状态更新为终止状态之后,可以将自身的运行数据存储到业务节点中,实现持久化存储。可选地,运行数据可以包括第一pod的日志等。
基于上述方案,管理节点在接收到更新指令之后就可以确定旧版本的第一pod的状态应更新为终止状态,管理节点会将第一pod的状态变化情况指示给第一pod包括的至少一个容器中,至少一个容器在确定第一pod的状态变为终止状态时就可以将自身的运行数据进行存储,解决了业务服务更新的过程中存在的pod的数据丢失的问题。
在一些实施例中,用于执行上述监控各个pod的状态并将pod的状态更新到configmap中的操作的还可以是管理节点中的控制器(controller),可选地,也可以将执行上述操作的controller称为pod status controlle,后续为了方便描述,将其称为controller进行介绍。用于执行上述接收更新指令和下发删除指令操作的也可以是管理节点中的API server组件。可选地,在管理节点的API server组件接收到更新指令之后,管理节点的controller就可以根据该更新指令确定第一pod的状态由运行状态更新为终止状态。则controller可以将第一pod对应的第一configmap中记录的第一pod的状态由运行状态更新为终止状态。进一步地,在一种可选的方式下,由于第一pod包括的至少一个容器都挂载第一configmap并实时检测第一configmap中记录的第一pod的状态,所以第一pod包括的至少一个容器可以通过该第一configmap确定第一pod的状态更新为终止状态。在另一种可选的方式下,第一pod包括的至少一个容器可以在第一configmap中记录的第一pod的状态发生变化时,将对应的第一pod的状态值作为容器的环境变量,并从环境变量中获取第一pod的状态更新为终止状态。作为一种举例,上述过程可以参见图3示出的架构图,具体包括:由controller监控pod的状态,确定第一pod状态更新,同步更新第一pod包括的至少一个容器中挂载的第一configmap中记录的第一pod的状态。
进一步地,第一pod包括的至少一个容器在确定第一pod的状态为终止状态后,可以将自身的运行数据存储的业务节点中,或者将自身的运行数据存储到业务节点的存储器中,实现数据的持久化存储。
需要说明的是,上述的实施例仅作为一种示例,执行上述操作的还可以是管理节点中的其他控制器或者组件,本申请对此不做限定,为了便于理解,后续还将继续以管理节点中的API server和controller执行相应的功能为例进行介绍。
在一些场景中,当API server接收到更新之后,还可以向业务节点发送创建指令,用于指示业务节点创建第二pod。第二pod包括至少一个容器,用于提供第二业务服务功能。进一步地,controller可以在API server发送创建指令之后创建第二pod包括的至少一个容器挂载的第二configmap,可选地,controller可以根据第二业务服务名称servicename、第二pod的空间名称name space或者第二pod的IP地址对第二configmap进行命名,例如,命名规则可以采用“namespace-servicename-podstatus”。controller可以在第二configmap中添加第二pod的状态为运行状态之后,将第二configmap发送给业务节点。业务节点在接收到第二configmap后,根据第二configmap的名称确定需要挂载第二configmap的容器为第二pod包括的至少一个容器,将第二configmap挂载到第二pod包括的至少一个容器中。
基于上述方案,controller在初始创建configmap是就将pod的状态添加至configmap中,这样方便在后续pod的状态发生变化时进行更新,保证configmap中记录的pod的状态的准确性,便于pod包括的容器进行相应的操作。
下面,为了便于理解本申请提出的业务服务更新方法,将结合具体地实施例进行介绍。参见图4,为本申请实施例提供的一种业务服务更新方法流程图,具体包括:
401,API server接收更新指令。
更新指令用于指示将第一业务服务更新为第二业务服务。可选地,API server可以在管理人员触发更新业务服务进行更新时接收到更新指令。
402,API server向业务节点发送删除指令。
关于删除指令的介绍具体参见步骤202,在此不再赘述。
403,业务节点接收删除指令,根据删除指令在设定时长后删除第一pod。
具体参见步骤203,在此不再赘述。
404,controller将第一pod包括的至少一个容器挂载的第一configmap进行更新。
具体地,controller可以将第一configmap中记录的第一pod的状态由运行状态更新为终止状态。
405,第一pod包括的至少一个容器在设定时长内将第一configmap中记录的第一pod的状态值设置为容器的环境变量。
可选地,第一pod包括的至少一个容器可以使用configmapKeyRef类型将第一configmap中记录的第一pod的状态值设置为第一pod包括的至少一个容器的环境变量。
需要说明的是,在设定时长内,第一pod的状态为终止状态。
406,第一pod包括的至少一个容器从环境变量中获取第一pod的状态,根据第一pod的状态为终止状态将自身的运行数据存储的业务节点中。
基于与上述方法的同一构思,参见图5A,本申请实施例提供了一种用于实现业务服务更新功能的装置500A。装置500A能够执行上述方法中的各个步骤,为了避免重复,在此不再详述。装置500A包括:收发单元501A和处理单元502A。
在一种可能的场景下:
收发单元501A,用于接收更新指令,所述更新指令用于指示将第一业务服务功能更新为第二业务服务功能;
所述收发单元501A,还用于向所述装置所管理的业务节点发送删除指令,所述删除指令用于指示将第一pod删除,所述第一pod为所述业务节点中用于提供所述第一业务服务功能的pod;
处理单元502A,用于向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态,所述终止状态用于所述第一pod包括的至少一个容器存储自身的运行数据。
在一些实施例中,所述处理单元502A,在向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态时,具体用于:
将所述第一pod包括的至少一个容器挂载的第一配置文件包括的第一pod的状态由运行状态更新为终止状态。
在一些实施例中,在所述收发单元501A接收所述更新指令之后,
所述收发单元501A,还用于向所述业务节点发送创建指令,所述创建指令用于指示创建第二pod,所述第二pod为所述业务节点中用于提供所述第二业务服务功能的pod,所述第二pod包括至少一个容器;
所述处理单元502A,还用于创建所述第二pod包括的至少一个容器挂载的第二配置文件,并在所述第二配置文件中添加所述第二pod的状态为运行状态;
所述收发单元501A,还用于向所述业务节点发送所述第二配置文件。
在另一种可能的场景下:
收发单元501A,用于接收来自管理节点的删除指令;所述删除指令用于指示将所述业务节点中用于提供第一业务服务功能的第一pod删除;
处理单元502A,根据所述删除指令在设定时长后删除所述第一pod;
所述第一pod包括的至少一个容器,还用于在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态时,在所述设定时长内将自身的运行数据存储于所述业务节点。
在一些实施例中,所述第一pod包括的至少一个容器,在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态时,具体用于:
在所述设定时长内确定挂载的第一配置文件包括的所述第一pod的状态由运行状态更新为终止状态;所述第一配置文件中包括的所述第一pod的状态是由所述管理节点更新的。
在一些实施例中,所述收发单元501A还用于:接收来自所述管理节点的创建指令,所述创建指令用于指示创建用于提供第二业务服务功能的第二pod;
所述处理单元502A,还用于根据所述创建指令创建所述第二pod,所述第二pod中包括至少一个容器;
所述收发单元501A,还用于接收来自所述管理节点的第二配置文件;
所述处理单元502A,还用于将所述第二配置文件挂载到所述第二pod包括的至少一个容器中;所述第二配置文件包括所述第二pod的状态为运行状态。
基于与上述方法的同一构思,参见图5B,本申请实施例提供了一种用于实现业务服务更新功能的装置500B。装置500B能够执行上述方法中管理节点所执行的各个步骤,为了避免重复,在此不再详述。装置500B包括:服务接口501B和控制器502B。
服务接口501B,用于接收更新指令,所述更新指令用于指示将第一业务服务功能更新为第二业务服务功能;
所述服务接口501B,还用于向所述装置所管理的业务节点发送删除指令,所述删除指令用于指示将第一pod删除,所述第一pod为所述业务节点中用于提供所述第一业务服务功能的pod;
控制器502B,用于向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态,所述终止状态用于所述第一pod包括的至少一个容器存储自身的运行数据。
在一些实施例中,所述控制器502B,在向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态时,具体用于:
将所述第一pod包括的至少一个容器挂载的第一配置文件包括的第一pod的状态由运行状态更新为终止状态。
在一些实施例中,在所述服务接口501B接收所述更新指令之后,
所述服务接口501B,还用于向所述业务节点发送创建指令,所述创建指令用于指示创建第二pod,所述第二pod为所述业务节点中用于提供所述第二业务服务功能的pod,所述第二pod包括至少一个容器;
所述控制器502B,还用于创建所述第二pod包括的至少一个容器挂载的第二配置文件,并在所述第二配置文件中添加所述第二pod的状态为运行状态;
所述服务接口501B,还用于向所述业务节点发送所述第二配置文件。
基于与上述方法的同一构思,参见图5C,本申请实施例提供了一种用于实现业务服务更新功能的装置500C。装置500C能够执行上述方法中业务节点所执行的各个步骤,为了避免重复,在此不再详述。装置500C包括:代理组件501C和第一pod502C。
所述代理组件501C,用于接收来自管理节点的删除指令;所述删除指令用于指示将所述业务节点中用于提供第一业务服务功能的第一pod502C删除;
所述代理组件501C,根据所述删除指令在设定时长后删除所述第一pod502C;
所述第一pod502C包括的至少一个容器,还用于在所述设定时长内确定所述第一pod502C的状态由运行状态更新为终止状态时,在所述设定时长内将自身的运行数据存储于所述业务节点。
在一些实施例中,所述第一pod502C包括的至少一个容器,在所述设定时长内确定所述第一pod502C的状态由运行状态更新为终止状态时,具体用于:
在所述设定时长内确定挂载的第一配置文件包括的所述第一pod502C的状态由运行状态更新为终止状态;所述第一配置文件中包括的所述第一pod502C的状态是由所述管理节点更新的。
在一些实施例中,所述代理组件501C还用于:
接收来自所述管理节点的创建指令,所述创建指令用于指示创建用于提供第二业务服务功能的第二pod;
根据所述创建指令创建所述第二pod,所述第二pod中包括至少一个容器;
接收来自所述管理节点的第二配置文件;
将所述第二配置文件挂载到所述第二pod包括的至少一个容器中;所述第二配置文件包括所述第二pod的状态为运行状态。
本申请实施例还提供另一种业务服务更新装置600,参见图6所示,包括:
通信接口601,存储器602以及处理器603;
其中,装置600通过所述通信接口601与其它设备进行通信,比如收发指令,通信接口601可以用于实现上述图5A中的收发单元或者图5B中的服务接口所能够实现的功能,或者还可以用于实现图5C中的代理组件的部分功能,例如,收发指令、接收文件等功能。存储器602,用于存储程序指令。处理器603,用于调用所述存储器602中存储的程序指令,按照获得的程序执行上述实施例中提出的任一方法。例如,处理器603可以用于实现上述图5A中的处理单元或者图5B中的控制器所实现的功能,或者也可以用于实现图5C中的代理组件的部分功能。
本申请实施例中不限定上述通信接口601、存储器602以及处理器603之间的具体连接介质,比如总线,总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solID-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例还提供一种计算机可读存储介质,包括程序代码,当程序代码在计算机上运行时,程序代码用于使计算机执行上述本申请实施例上述提供的方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种业务服务更新方法,其特征在于,包括:
管理节点接收更新指令,所述更新指令用于指示将第一业务服务功能更新为第二业务服务功能;
所述管理节点向所述管理节点所管理的业务节点发送删除指令,所述删除指令用于指示将第一pod删除,所述第一pod为所述业务节点中用于提供所述第一业务服务功能的pod;
所述管理节点向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态,所述终止状态用于所述第一pod包括的至少一个容器存储自身的运行数据。
2.如权利要求1所述的方法,其特征在于,所述管理节点向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态,包括:
所述管理节点将所述第一pod包括的至少一个容器挂载的第一配置文件包括的第一pod的状态由运行状态更新为终止状态。
3.如权利要求1或2所述的方法,其特征在于,在所述管理节点接收所述更新指令之后,所述方法还包括:
所述管理节点向所述业务节点发送创建指令,所述创建指令用于指示创建第二pod,所述第二pod为所述业务节点中用于提供所述第二业务服务功能的pod,所述第二pod包括至少一个容器;
所述管理节点创建所述第二pod包括的至少一个容器挂载的第二配置文件,并在所述第二配置文件中添加所述第二pod的状态为运行状态;
所述管理节点向所述业务节点发送所述第二配置文件。
4.一种业务服务更新方法,其特征在于,包括:
业务节点接收来自管理节点的删除指令;所述删除指令用于指示将所述业务节点中用于提供第一业务服务功能的第一pod删除;
所述业务节点根据所述删除指令在设定时长后删除所述第一pod;
所述第一pod包括的至少一个容器在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态时,在所述设定时长内将自身的运行数据存储于所述业务节点。
5.如权利要求4所述的方法,其特征在于,所述第一pod包括的至少一个容器在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态,包括:
所述第一pod包括的至少一个容器在所述设定时长内确定挂载的第一配置文件包括的所述第一pod的状态由运行状态更新为终止状态;所述第一配置文件中包括的所述第一pod的状态是由所述管理节点更新的。
6.如权利要求4或5所述的方法,其特征在于,所述方法还包括:
所述业务节点接收来自所述管理节点的创建指令,所述创建指令用于指示创建用于提供第二业务服务功能的第二pod;
所述业务节点根据所述创建指令创建所述第二pod,所述第二pod中包括至少一个容器;
所述业务节点接收来自所述管理节点的第二配置文件,将所述第二配置文件挂载到所述第二pod包括的至少一个容器中;所述第二配置文件包括所述第二pod的状态为运行状态。
7.一种业务服务更新装置,其特征在于,包括:
服务接口,用于接收更新指令,所述更新指令用于指示将第一业务服务功能更新为第二业务服务功能;
所述服务接口,还用于向所述装置所管理的业务节点发送删除指令,所述删除指令用于指示将第一pod删除,所述第一pod为所述业务节点中用于提供所述第一业务服务功能的pod;
控制器,用于向所述第一pod包括的至少一个容器指示所述第一pod的状态由运行状态更新为终止状态,所述终止状态用于所述第一pod包括的至少一个容器存储自身的运行数据。
8.一种业务服务更新装置,其特征在于,包括代理组件和第一pod:
所述代理组件,用于接收来自管理节点的删除指令;所述删除指令用于指示将所述业务节点中用于提供第一业务服务功能的第一pod删除;
所述代理组件,根据所述删除指令在设定时长后删除所述第一pod;
所述第一pod包括的至少一个容器,还用于在所述设定时长内确定所述第一pod的状态由运行状态更新为终止状态时,在所述设定时长内将自身的运行数据存储于所述业务节点。
9.一种业务服务更新装置,其特征在于,包括:
存储器以及处理器;
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1~6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1~6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110934969.6A CN113626054A (zh) | 2021-08-16 | 2021-08-16 | 一种业务服务更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110934969.6A CN113626054A (zh) | 2021-08-16 | 2021-08-16 | 一种业务服务更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626054A true CN113626054A (zh) | 2021-11-09 |
Family
ID=78385536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110934969.6A Pending CN113626054A (zh) | 2021-08-16 | 2021-08-16 | 一种业务服务更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626054A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515776A (zh) * | 2017-07-18 | 2017-12-26 | 深信服科技股份有限公司 | 业务不间断升级方法、待升级节点和可读存储介质 |
CN108683516A (zh) * | 2018-03-14 | 2018-10-19 | 聚好看科技股份有限公司 | 一种应用实例的升级方法、装置和系统 |
EP3579107A1 (en) * | 2018-06-06 | 2019-12-11 | Servicenow, Inc. | Discovery and mapping of containerized software applications |
CN111552543A (zh) * | 2020-05-22 | 2020-08-18 | 北京联想软件有限公司 | 容器管控方法及处理节点 |
CN111666088A (zh) * | 2020-06-07 | 2020-09-15 | 中信银行股份有限公司 | Pod的更替方法、装置、电子设备及计算机可读存储介质 |
CN111897625A (zh) * | 2020-06-23 | 2020-11-06 | 新浪网技术(中国)有限公司 | 一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备 |
CN111897558A (zh) * | 2020-07-23 | 2020-11-06 | 北京三快在线科技有限公司 | 容器集群管理系统Kubernetes升级方法和装置 |
CN112243044A (zh) * | 2019-07-16 | 2021-01-19 | 广州虎牙科技有限公司 | 容器地址分配方法及装置 |
CN112558997A (zh) * | 2020-12-28 | 2021-03-26 | 航天信息股份有限公司 | 一种部署应用的方法及装置 |
-
2021
- 2021-08-16 CN CN202110934969.6A patent/CN113626054A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515776A (zh) * | 2017-07-18 | 2017-12-26 | 深信服科技股份有限公司 | 业务不间断升级方法、待升级节点和可读存储介质 |
CN108683516A (zh) * | 2018-03-14 | 2018-10-19 | 聚好看科技股份有限公司 | 一种应用实例的升级方法、装置和系统 |
EP3579107A1 (en) * | 2018-06-06 | 2019-12-11 | Servicenow, Inc. | Discovery and mapping of containerized software applications |
CN112243044A (zh) * | 2019-07-16 | 2021-01-19 | 广州虎牙科技有限公司 | 容器地址分配方法及装置 |
CN111552543A (zh) * | 2020-05-22 | 2020-08-18 | 北京联想软件有限公司 | 容器管控方法及处理节点 |
CN111666088A (zh) * | 2020-06-07 | 2020-09-15 | 中信银行股份有限公司 | Pod的更替方法、装置、电子设备及计算机可读存储介质 |
CN111897625A (zh) * | 2020-06-23 | 2020-11-06 | 新浪网技术(中国)有限公司 | 一种基于Kubernetes集群的资源事件回溯方法、系统及电子设备 |
CN111897558A (zh) * | 2020-07-23 | 2020-11-06 | 北京三快在线科技有限公司 | 容器集群管理系统Kubernetes升级方法和装置 |
CN112558997A (zh) * | 2020-12-28 | 2021-03-26 | 航天信息股份有限公司 | 一种部署应用的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108683516B (zh) | 一种应用实例的升级方法、装置和系统 | |
US11740975B2 (en) | System and method for managing blockchain nodes | |
US20180067830A1 (en) | Healing cloud services during upgrades | |
US10956374B2 (en) | Data recovery method, apparatus, and system | |
CN111200657B (zh) | 一种管理资源状态信息的方法和资源下载系统 | |
US11392363B2 (en) | Implementing application entrypoints with containers of a bundled application | |
CN107005426B (zh) | 一种虚拟网络功能的生命周期管理方法及装置 | |
CN109788068B (zh) | 心跳状态信息上报方法、装置和设备及计算机存储介质 | |
US9852220B1 (en) | Distributed workflow management system | |
US10620871B1 (en) | Storage scheme for a distributed storage system | |
CN110535776B (zh) | 网关限流方法、装置、网关、系统及存储介质 | |
CN104850416A (zh) | 一种升级系统、方法、装置及云计算节点 | |
CN111444157B (zh) | 分布式文件系统及数据访问方法 | |
CN112003917A (zh) | 一种文件存储的管理方法、系统、设备以及介质 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN111966466A (zh) | 一种容器管理方法、设备以及介质 | |
CN111464603A (zh) | 一种服务器扩容方法及扩容系统 | |
CN113760549A (zh) | 一种pod部署方法及装置 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
US10152490B2 (en) | Sequential replication with limited number of objects | |
CN114827177B (zh) | 一种分布式文件系统的部署方法、装置及电子设备 | |
CN113626054A (zh) | 一种业务服务更新方法及装置 | |
CN110247937B (zh) | 弹性存储系统共享文件管理、访问方法及相关设备 | |
CN113448609B (zh) | 一种容器的升级方法、装置、设备和存储介质 | |
CN115167907A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211109 |
|
RJ01 | Rejection of invention patent application after publication |