分布式微服务集群的升级方法及相关系统技术方案

技术编号:19023119 阅读:25 留言:0更新日期:2018-09-26 18:59
本申请提供了一种分布式微服务集群的升级方法及相关系统,其中,分布式微服务集群的升级方法包括:容器集群管理系统接收升级任务实例化描述对象,根据升级任务实例化描述对象,创建并启动第一版本APP的服务实例,根据升级任务的工作流,为第一版本APP的服务实例分配资源;利用为第一版本APP的服务实例分配的资源,在节点上为第一版本APP创建容器管理器,启动容器管理器和容器管理器中的APP的微服务运行实例;根据第一版本APP的合并配置数据,生成第一版本APP的存储实例;第一版本APP的合并配置数据由第一版本APP的配置数据和第二版本APP的配置数据合并得到,第二版本APP的版本号低于第一版本APP的版本号。

【技术实现步骤摘要】
分布式微服务集群的升级方法及相关系统
本申请涉及云计算
,尤其涉及分布式微服务集群技术。
技术介绍
基于容器集群管理系统构建的平台即服务(Platform-as-a-Service,PaaS)的应用场景,常见的一种是基于Docker运行应用程序(Application,APP)的分布式微服务集群。基于Docker运行APP的分布式微服务集群是指:APP的多个微服务被部署在多台服务器上,通过多台服务器之间的相互通信和相互调用来执行任务。在实际的应用过程中,APP分布式微服务集群被部署完成后,会需要执行升级操作。并且,一般采用滚动升级方式完成APP分布式微服务集群的升级操作,滚动升级方式是指:利用新版本APP的存储实例替换已有的当前版本APP的存储实例。但是,在APP分布式微服务集群的实际运行过程中,当前版本APP的存储实例中的配置项的值会变更。采用滚动升级方式完成APP分布式微服务集群的升级操作,当前版本APP的存储实例中配置项变更后的值,又会被新版本APP的存储实例中的初始值所替换,致使新版本APP的微服务运行实例无法读取到被变更过的配置项的值,使得新版本APP无法提供正常的服务。
技术实现思路
本申请提供了一种分布式微服务集群的升级方法及相关系统,以解决在分布式微服务集群的升级操作中,存在的由于当前版本APP的存储实例被直接替换为新版本APP的存储实例,导致的新版本APP的微服务运行实例无法读取到当前版本APP的存储实例被变更过的配置项的值,致使无法提供正常服务的问题。为了实现上述目的,现提出的方案如下:本申请的第一方面提供了一种分布式微服务集群的升级方法,包括:容器集群管理系统接收升级任务实例化描述对象;所述容器集群管理系统根据所述升级任务实例化描述对象,创建并启动第一版本APP的服务实例,并根据升级任务的工作流,为所述第一版本APP的服务实例分配资源;所述容器集群管理系统利用为所述第一版本APP的服务实例分配的资源,在节点上为所述第一版本APP创建容器管理器,并启动所述容器管理器和所述容器管理器中的APP的微服务运行实例;所述容器集群管理系统根据第一版本APP的合并配置数据,生成第一版本APP的存储实例;其中,所述第一版本APP的合并配置数据由所述第一版本APP的配置数据和第二版本APP的配置数据合并得到,所述第二版本APP的版本号低于所述第一版本APP的版本号;所述第一版本APP的存储实例用于存储所述第一版本APP的微服务运行实例被执行时所需的配置数据。从上述过程可以看出:容器集群管理系统在当前存储的第二版本的存储实例替换为第一版本的APP的存储实例时,由于所述第一版本APP的存储实例根据第一版本APP的合并配置数据而生成;并且,所述第一版本APP的合并配置数据由所述第一版本APP的配置数据和第二版本APP的配置数据合并得到。因此,第一版本的APP的存储实例中包括第二版本的配置数据,可以避免由于当前版本的APP的配置数据被直接替换为新版本APP的配置数据,导致的新版本APP的微服务运行实例无法读取到升级前被变更过的配置项的值,致使无法提供正常服务的问题。在一个实现方式中,所述任务实例化描述对象由应用编排系统依据第一版本APP的部署蓝图生成;其中,所述第一版本APP的部署蓝图中的定义模板中的数据被丢弃;或者,所述第一版本APP的部署蓝图中的定义模板包括:所述第一版本APP的合并配置数据。在一个实现方式中,所述第一版本APP的合并配置数据的获得方式,包括:所述容器集群管理系统接收所述容器管理器中的APP发送的所述第一版本APP的合并配置数据;或者,所述容器集群管理系统获取所述升级任务实例化描述对象中的所述第一版本APP的合并配置数据。在一个实现方式中,所述第一版本APP的合并配置数据,包括:第一种配置项分别在所述第一版本APP的配置数据和所述第二版本APP的配置数据中的名称和值;其中,所述第一种配置项包括:所述第一版本APP的配置数据相对于所述第二版本APP的配置数据,新增加的配置项以及删除的配置项;现网运行的第二种配置项的值;其中,所述第二种配置项包括:所述第一版本APP的配置数据相对于所述第二版本APP的配置数据,名称相同但值不相同的配置项。本申请的第二方面提供了一种容器集群管理系统,包括:第一接收单元,用于接收升级任务实例化描述对象;第一创建单元,用于根据所述升级任务实例化描述对象,创建并启动第一版本APP的服务实例;分配单元,用于根据升级任务的工作流,为所述第一版本APP的服务实例分配资源;第二创建单元,用于利用所述第一版本APP的服务实例分配资源,在节点上为所述第一版本APP创建容器管理器;启动单元,用于启动所述容器管理器和所述容器管理器中的APP的微服务运行实例;生成单元,用于根据第一版本APP的合并配置数据,生成第一版本APP的存储实例;其中,所述第一版本APP的合并配置数据由所述第一版本APP的配置数据和第二版本APP的配置数据合并得到,所述第二版本APP的版本号低于所述第一版本APP的版本号;所述第一版本APP的存储实例用于存储所述第一版本APP的微服务运行实例被执行时所需的配置数据。在一个实现方式中,所述任务实例化描述对象由应用编排系统依据第一版本APP的部署蓝图生成;其中,所述第一版本APP的部署蓝图中的定义模板中的数据被丢弃;或者,所述第一版本APP的部署蓝图中的定义模板包括:所述第一版本APP的合并配置数据。在一个实现方式中,还包括:第二接收单元,用于接收所述容器管理器中的APP发送的所述第一版本APP的合并配置数据;或者,获取单元,用于获取所述升级任务实例化描述对象中的所述第一版本APP的合并配置数据。在一个实现方式中,所述第一版本APP的合并配置数据,包括:第一种配置项分别在所述第一版本APP的配置数据和所述第二版本APP的配置数据中的名称和值;其中,所述第一种配置项包括:所述第一版本APP的配置数据相对于所述第二版本APP的配置数据,新增加的配置项以及删除的配置项;现网运行的第二种配置项的值;其中,所述第二种配置项包括:所述第一版本APP的配置数据相对于所述第二版本APP的配置数据,名称相同但值不相同的配置项。本申请的第三方面提供了一种分布式微服务集群的升级方法,包括:应用编排系统识别出第一版本APP的部署蓝图中的任务类型为升级任务,丢弃所述第一版本APP的部署蓝图中的定义模板中的数据,得到第一版本APP的简约部署蓝图;所述应用编排系统依据所述第一版本APP的简约部署蓝图,生成升级任务实例化描述对象;其中,所述升级任务实例化描述对象用于提供于容器集群管理系统创建并启动所述第一版本APP的服务实例;所述应用编排系统监测到所述第一版本APP的服务实例为启动状态,则根据所述升级任务实例化描述对象,生成升级任务的工作流;其中,所述工作流用于驱动所述容器集群管理系统为第一版本APP的服务实例分配资源。从上述过程可以看出:应用编排系统识别出第一版本APP的部署蓝图中的任务类型为升级任务,丢弃所述第一版本APP的部署蓝图中的定义模板中的数据,可以避免依据第一版本APP部署蓝图中的定义模板中的数据,创建得到第一版本APP的存储实例,导致替换了第二版本APP的存储实例本文档来自技高网...

【技术保护点】
1.一种分布式微服务集群的升级方法,其特征在于,包括:容器集群管理系统接收升级任务实例化描述对象;所述容器集群管理系统根据所述升级任务实例化描述对象,创建并启动第一版本APP的服务实例,并根据升级任务的工作流,为所述第一版本APP的服务实例分配资源;所述容器集群管理系统利用为所述第一版本APP的服务实例分配的资源,在节点上为所述第一版本APP创建容器管理器,并启动所述容器管理器和所述容器管理器中的APP的微服务运行实例;所述容器集群管理系统根据第一版本APP的合并配置数据,生成第一版本APP的存储实例;其中,所述第一版本APP的合并配置数据由所述第一版本APP的配置数据和第二版本APP的配置数据合并得到,所述第二版本APP的版本号低于所述第一版本APP的版本号;所述第一版本APP的存储实例用于存储所述第一版本APP的微服务运行实例被执行时所需的配置数据。

【技术特征摘要】
1.一种分布式微服务集群的升级方法,其特征在于,包括:容器集群管理系统接收升级任务实例化描述对象;所述容器集群管理系统根据所述升级任务实例化描述对象,创建并启动第一版本APP的服务实例,并根据升级任务的工作流,为所述第一版本APP的服务实例分配资源;所述容器集群管理系统利用为所述第一版本APP的服务实例分配的资源,在节点上为所述第一版本APP创建容器管理器,并启动所述容器管理器和所述容器管理器中的APP的微服务运行实例;所述容器集群管理系统根据第一版本APP的合并配置数据,生成第一版本APP的存储实例;其中,所述第一版本APP的合并配置数据由所述第一版本APP的配置数据和第二版本APP的配置数据合并得到,所述第二版本APP的版本号低于所述第一版本APP的版本号;所述第一版本APP的存储实例用于存储所述第一版本APP的微服务运行实例被执行时所需的配置数据。2.根据权利要求1所述的方法,其特征在于,所述任务实例化描述对象由应用编排系统依据第一版本APP的部署蓝图生成;其中,所述第一版本APP的部署蓝图中的定义模板中的数据被丢弃;或者,所述第一版本APP的部署蓝图中的定义模板包括:所述第一版本APP的合并配置数据。3.根据权利要求1所述的方法,其特征在于,所述第一版本APP的合并配置数据的获得方式,包括:所述容器集群管理系统接收所述容器管理器中的APP发送的所述第一版本APP的合并配置数据;或者,所述容器集群管理系统获取所述升级任务实例化描述对象中的所述第一版本APP的合并配置数据。4.根据权利要求1所述的方法,其特征在于,所述第一版本APP的合并配置数据,包括:第一种配置项分别在所述第一版本APP的配置数据和所述第二版本APP的配置数据中的名称和值;其中,所述第一种配置项包括:所述第一版本APP的配置数据相对于所述第二版本APP的配置数据,新增加的配置项以及删除的配置项;现网运行的第二种配置项的值;其中,所述第二种配置项包括:所述第一版本APP的配置数据相对于所述第二版本APP的配置数据,名称相同但值不相同的配置项。5.一种容器集群管理系统,其特征在于,包括:第一接收单元,用于接收升级任务实例化描述对象;第一创建单元,用于根据所述升级任务实例化描述对象,创建并启动第一版本APP的服务实例;分配单元,用于根据升级任务的工作流,为所述第一版本APP的服务实例分配资源;第二创建单元,用于利用所述第一版本APP的服务实例分配资源,在节点上为所述第一版本APP创建容器管理器;启动单元,用于启动所述容器管理器和所述容器管理器中的APP的微服务运行实例;生成单元,用于根据第一版本APP的合并配置数据,生成第一版本APP的存储实例;其中,所述第一版本APP的合并配置数据由所述第一版本APP的配置数据和第二版本APP的配置数据合并得到,所述第二版本APP的版本号低于所述第一版本APP的版本号;所述第一版本APP的存储实例用于存储所述第一版本APP的微服务运行实例被执行时所需的配置数据。6.根据权利要求5所述的系统,其特征在于,所述任务实例化描述对象由应用编排系统依据第一版本APP的部署蓝图生成;其中,所述第一版本APP的部署蓝图中的定义模板中的数据被丢弃;或者,所述第一版本APP的部署蓝图中的定义模板包括:所述第一版本APP的合并配置数据。7.根据权利要求5所述的系统,其特征在于,还包括:第二接收单元,用于接收所述容器管理器中的APP发送的所述第一版本APP的合并配置数据;或者,获取单元,用于获取所述升级任务实例化描述对象中的所述第一版本APP的合并配置数据。8.根据权利要求5所述的系统,其特征在于,所述第一版本APP的合并配置数据,包括:第一种配置项分别在所述第一版本APP的配置数据和所述第二版本APP的配置数据中的名称和值;其中,所述第一种配置项包括:所述第一版本APP的配置数据相对于所述第二版本APP的配置数据,新增加的配置项以及删除的配置项;现网运行的第二种配置项的值;其中,所述第二种配置项包括:所述第一版本APP的配置数据相对于所述第二版本APP的配置数据,名称相同但值不相同的配置项。9.一种应用编排系统,其特征在于,包括:解析器,用于识别出第一版本APP的部署蓝图中的任务类型为升级任务,丢弃所述第一版本APP的部署蓝图中的定义模板中的数据,得到第一版本APP的简约部署蓝图;依据所述第一版本APP的简约部署蓝图,生成升级任务实例化描述对象;其中,所述升级任务实例化描述对象用于提供于容器集群管理系统创建并启动所述第一版本APP的服务实例;工作流引擎,用于监测到所述第一版本APP的服务实例为启动状态,则根据所述升级任务实例化描述对象,生成升级任务的工作流;其中,所述工作流用于驱动所述容器集群管理系统为第一版本APP的服务实例分配资源。10.一种节点,其特征在于,包括:合并单元,用于在第一容器管理器中的APP的微服务运行实例被首次启动时,将第一版本APP的配置数据和第二版本APP的配置数据进行合并,得到第一版本APP的合并配置数据;其中...

【专利技术属性】
技术研发人员:黄益贵黄顺炎张蒲
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1