一种实例部署方法及系统与流程

文档序号:20369475发布日期:2020-04-14 12:56阅读:81来源:国知局
一种实例部署方法及系统与流程

本发明涉及云计算领域,更具体地说,涉及一种实例部署方法及系统。



背景技术:

kubernetes,简称k8s,是一个开源的,用于管理云平台中多个主机上的容器化的分布式系统平台,可以实现对集群的管理。

为了方便对集群的管理,kubernetes官方社区提供了kubeapps,参见图1,图1是现有技术中采用kubernetes的结构示意图,kubeapps包括三个组件,前端、chartsvc和tiller-proxy。其中,前端组件为呈现给用户的ui界面,chartsvc组件用于管理和配置chart仓库中的chart应用打包文件chart包,tiller-proxy组件用于实现对chart包在集群中的部署。

其中,tiller-proxy组件需要与集群的部署组件tiller以及kubernetesapiserver的交互来实现chart包对应应用的部署。

现有技术中,集群中都部署有tiller-proxy组件,其与集群的部署组件是一一对应的,如果用户部署了多个集群,则会在每一个集群中都部署,造成资源浪费,并且tiller-proxy和集群之间是一种紧耦合的关系。



技术实现要素:

有鉴于此,本发明提供了一种实例部署方法及系统,用以在实例部署时,可以通过一对多的方式来完成部署,避免资源浪费,使得tiller-proxy与集群解耦。

为了实现上述目的,现提出的方案如下:

一种实例部署方法,应用于集群管理系统,所述集群管理系统包括集群信息数据库、平台tiller-proxy以及多个集群,所述方法包括:

所述平台tiller-proxy接收到实例部署指令时,依据所述实例部署指令中目标集群id在所述集群信息数据库中确定目标集群;

将所述实例部署指令发送给所述目标集群的部署组件,以使得所述部署组件依据所述实例部署指令部署实例。

优选的,还包括:

当监测到通过创建新集群使得所述集群信息数据库中录入新的集群信息时,创建与所述新集群的部署组件具有对应关系的客户端组件,以通过该客户端组件实现与所述新集群的部署组件的通信。

优选的,所述创建与所述新集群的部署组件具有对应关系的客户端组件具体包括:

在所述平台tiller-proxy中所建立的hash对象所对应的第一字段中添加所述新集群的集群id,在第二字段中添加所述新集群对应的代理对象;

在所述代理对象中创建第一子客户端和第二子客户端;

所述第一子客户端用于与所述新的集群部署组件中的tiller进行通信,所述第二子客户端用于与所述新的集群部署组件中的kubeappsapiserver进行通信。

优选的,还包括:

当监测到通过删除旧集群使得所述集群信息数据库中删除所述旧集群对应的集群信息时,删除所述旧集群对应的客户端组件。

优选的,所述平台tiller-proxy部署在全部集群之外。

优选的,所述平台tiller-proxy部署在任意一个集群中。

本发明另一方面还提供了一种实例部署系统,包括:

集群信息数据库、平台tiller-proxy以及多个集群;

所述平台tiller-proxy用于接收到实例部署指令时,依据所述实例部署指令中目标集群id在所述集群信息数据库中确定目标集群;

将所述实例部署指令发送给所述目标集群的部署组件,以使得所述部署组件依据所述实例部署指令部署实例。

优选的,所述平台tiller-proxy部署在全部集群之外。

优选的,所述平台tiller-proxy部署在任意一个集群中。

本发明实施例提供一种实例部署方法及系统,所述方法应用于集群管理系统,所述集群管理系统包括集群信息数据库、平台tiller-proxy以及多个集群,本发明实施例中的所述平台tiller-proxy接收到实例部署指令时,依据所述实例部署指令中目标集群id在所述集群信息数据库中确定目标集群;然后将所述实例部署指令发送给所述目标集群的部署组件,以使得所述部署组件依据所述实例部署指令部署实例。由于本发明实施例中,设置了集群信息数据库以及平台tiller-proxy,使得一个平台tiller-proxy可以实现与多个集群的通信,从而完成目标集群中实例的部署,避免了资源浪费,并且使得tiller-proxy与集群解耦。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是现有技术中k8s部署实例时的结构示意图;

图2是本发明实施例提供的一种实例部署方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种实例部署方法及系统,用以实现chart应用的部署。现有技术中,参见图1,图1是现有技术中k8s部署实例时的结构示意图,在k8s中,一个chart实例的部署可以通过如下过程:

1,kubeaapps前端调用chartsvc来列出所有的chart包;

2,前端请求chartsvc来列出需要安装的chart包所有配置信息。

3,前端将创建实例的请求发送给tiller-proxy,使其在chart仓库即图中的chartmuseum来下载所请求的chart包,并发送相关信息给部署组件中的tiller进行解析,并将解析后的内容发送给部署组件中的kubernetesapiserver,当其验证tiller-proxy具有相应权限后,tiller-proxy会将chart包发送给tiller,tiller调用kubernetesapiserver来执行安装,并保存应用实例信息到自身的数据库中,完成集群中应用的部署。

但是,部署组件与tiller-proxy是一一对应的,因此会导致资源浪费。有鉴于此,本发明提供了一种实例部署方法,用以避免数据的冗余,并且使得tiller-proxy与集群解耦。下面对本发明实施例进行详细介绍。

参见图2,图2是本发明实施例提供的一种实例部署方法的流程示意图。

本发明提供的一种实例部署方法,应用于集群管理系统,所述集群管理系统包括集群信息数据库、平台tiller-proxy以及多个集群。

本发明实施例中,设置有集群信息数据库,该集群信息数据库中保存有每一个集群的集群信息,例如集群id,token,访问地址等。

本发明实施例中,还设置了平台tiller-proxy,该平台tiller-proxy的创建过程可以包括:安装tiller-proxy软件包、修改相应的配置文件并启动配置好的服务。

可以理解的是,该平台tiller-proxy的基础功能与在集群的tiller-proxy的功能相互参考。

本发明实施例中,平台tiller-proxy可以部署在某一个集群之中,也可以部署在全部集群之外。

若部署在全部集群之外,其它集群则无需部署相应组件,使得所有的集群更加精简。若部署在某一个集群之中,则需要该集群与其它集群具有通信连接,对单个集群配置要求较高,但是耦合性较强。

可以理解的是,还可以是部署在与所有集群均可以实现通信的其它设备中。只要可以实现相应的功能即可,本发明实施例中的平台tiller-proxy可以根据实际需要进行部署。再此不进行具体限定。

本发明实施例中,所述方法包括:

s201、所述平台tiller-proxy接收到实例部署指令时,依据所述实例部署指令中目标集群id在所述集群信息数据库中确定目标集群;

s202、将所述实例部署指令发送给所述目标集群的部署组件,以使得所述部署组件依据所述实例部署指令部署实例。

基于本发明所采用的上述架构,本发明实施例中,所述平台tiller-proxy接收到实例部署指令。其中,实例部署指令可以是用户通过操作管理所述平台tiller-proxy的ui界面所发送的,当然,也可以是通过其它装置所发送的。

可以理解的是,该实例部署指令中包括有目标集群的集群id,由于本发明实施例中,平台tiller-proxy可以实现与多个集群的通信,因此,需要确定目标集群的集群id,以便于与需要部署实例的集群进行通讯。

本发明实施例中,目标集群中部署有部署组件,该部署组件可以是tiller以及kubernetesapiserver。

需要说明的是,tiller以及kubernetesapiserver后续进行实例部署的过程可以参照现有技术,本发明对该过程不进行赘述。

本发明实施例中,所述方法应用于集群管理系统,所述集群管理系统包括集群信息数据库、平台tiller-proxy以及多个集群,本发明实施例中的所述平台tiller-proxy接收到实例部署指令时,依据所述实例部署指令中目标集群id在所述集群信息数据库中确定目标集群;然后将所述实例部署指令发送给所述目标集群的部署组件,以使得所述部署组件依据所述实例部署指令部署实例。由于本发明实施例中,设置了集群信息数据库以及平台tiller-proxy,使得一个平台tiller-proxy可以实现与多个集群的通信,从而完成目标集群中实例的部署,避免了资源浪费。

本发明实施例中,由于建立了一对多的关系,因此,如果有新集群建立时,需要针对该新集群进行相应的操作。

在上述实施例的基础上,本发明实施例还包括:

当监测到通过创建新集群使得所述集群信息数据库中录入新的集群信息时,创建与所述新集群的部署组件具有对应关系的客户端组件,以通过该客户端组件实现与所述新集群的部署组件的通信。

本发明实施例中,可以通过创建一个数据库管理组件databasemanager对象,来实现当有新集群建立时的数据变动。

本发明实施例中,通过数据库管理组件监测信息数据库的数据改动,如果集群信息数据库中有录入新的集群信息时,会触发创建与所述新集群的部署组件具有对应关系的客户端组件的过程。来实现同一个平台tiller-proxy与多个集群进行通信,实现多个集群实例部署。

本发明实施例中,在平台tiller-proxy内部的proxy对象改为hash对象,该hash对象中的每一项对应了一个集群,其中,key为集群id,value为集群对应的代理对象proxy对象。

本发明实施例中,所述创建与所述新集群的部署组件具有对应关系的客户端组件具体包括:

在所述平台tiller-proxy中所建立的hash对象所对应的第一字段中添加所述新集群的集群id,在第二字段中添加所述新集群对应的代理对象;

在所述代理对象中创建第一子客户端和第二子客户端;

所述第一子客户端用于与所述新的集群部署组件中的tiller进行通信,所述第二子客户端用于与所述新的集群部署组件中的kubeappsapiserver进行通信。

本发明实施例中,当监测到有新集群建立时,在平台tiller-proxy中所建立的hash对象的第一字段即key中添加该新集群的集群id,在第二字段即value字段中,添加该集群对应的代理对象proxy对象。

其中第一子客户端为所述proxy对象内部的helmclient,用来与集群的tiller通信,第二子客户端为所述proxy对象内部的kubeclient,用来与集群的kubernetesapiserver进行通信。来共同完成实例的部署。

本发明实施例中,还可以包括:

当监测到通过删除旧集群使得所述集群信息数据库中删除所述旧集群对应的集群信息时,删除所述旧集群对应的客户端组件。

本发明实施例中,在新增新集群会进行添加,而删除旧集群同样的,也可以删除旧集群对应的相应内容,从而最大限度的节省资源。

因此,本发明实施例中,当旧集群被删除时,会对应删除旧集群在hash对象中的对应内容,如第一子客户端、第二子客户端。

可见,本发明实施例可以最大限度的节省资源,并且使得tiller-proxy与集群解耦。

可选的。所述平台tiller-proxy部署在全部集群之外。

可选的。所述平台tiller-proxy部署在任意一个集群中。

与上述方法实施例对应的,本发明还公开了一种实例部署系统。

本发明公开的一种实例部署系统,包括:

集群信息数据库、平台tiller-proxy以及多个集群;

所述平台tiller-proxy用于接收到实例部署指令时,依据所述实例部署指令中目标集群id在所述集群信息数据库中确定目标集群;

将所述实例部署指令发送给所述目标集群的部署组件,以使得所述部署组件依据所述实例部署指令部署实例。

可选的。所述平台tiller-proxy部署在全部集群之外。

可选的。所述平台tiller-proxy部署在任意一个集群中。

该系统的功能实现可以参考前述实施例中的一种实例部署方法,所采用的架构和功能在此不进行赘述。

由于本发明实施例中,设置了集群信息数据库以及平台tiller-proxy,使得一个平台tiller-proxy可以实现与多个集群的通信,从而完成目标集群中实例的部署,避免了资源浪费,并且使得tiller-proxy与集群解耦。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1