System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别是涉及服务容器化的部署方法、装置、计算机设备和存储介质。
技术介绍
1、容器技术是应用程序部署的技术方案,是云原生技术栈的基石。新的软件应用基本都是部署在容器里,分布在不同的服务器上。对于容器的调度,分配,管理称作容器编排技术,当前的容器编排引擎(软件)包括docker和kubernetes(简称k8s)。
2、目前,实现服务容器化主要依赖于人为编写的用于构建应用容器的脚本文件;比如:在docker环境下,实现服务容器化依赖人为编写的docker-compose.yml脚本文件,然后通过docker api或者docker命令进行部署运维,并且通过不断的查询服务部署运行状态,来判断服务部署是否成功。在k8s环境下,也是依赖人为编写的deployment.yml,service.yaml,pvc.yaml的配置文件,通过执行kubectl命令调用k8s apiserver进行部署运维。然而,脚本文件不仅具有较高的格式要求,还涉及有多种命令的理解运用,这就使得人为编写的脚本文件容易出现错误,导致容器部署效率较低。
3、针对相关技术中脚本文件存在错误使得容器部署失败,导致容器部署效率较低,目前还没有提出有效的解决方案。
技术实现思路
1、在本实施例中提供了一种服务容器化的部署方法、装置、计算机设备和存储介质,以解决相关技术中脚本文件存在错误使得容器部署失败,导致容器部署效率较低的问题。
2、第一个方面,在本实施例中提供了一种服务容
3、获取用户发起服务部署的部署请求,将所述部署请求中的服务部署信息存储到数据库中;
4、基于所述部署请求,生成对应的任务,将所述任务添加到任务队列中;所述任务队列中的每个所述任务对应一对键值对;
5、在所述任务队列发生变化时,基于所述任务从所述数据库中获取对应的所述服务部署信息;根据所述服务部署信息和预设配置模板,生成符合当前环境的服务配置文件;
6、基于所述服务配置文件,将所述服务部署到所述当前环境的集群中。
7、在其中的一些实施例中,所述方法还包括:
8、在k8s环境下,选择所述k8s环境所述集群中的一个主机,监听推送的所述任务队列,在所述任务队列中所述任务增加或变更时,则判定所述任务队列发生变化;
9、或,在docker环境下,通过所述docker环境所述集群中的所有主机,同时监听推送的所述任务队列,在所述任务队列中所述任务增加或变更时,则判定所述任务队列发生变化。
10、在其中的一些实施例中,所述方法还包括:
11、在k8s环境下,选择所述k8s环境所述集群中的一个主机,定时查询所述任务队列中键值对的键值,在所述键值发生变化时,则判定所述任务队列发生变化;
12、或,在docker环境下,通过所述docker环境所述集群中的所有主机,同时查询所述任务队列中键值对的键值,在所述键值发生变化时,则判定所述任务队列发生变化。
13、在其中的一些实施例中,基于所述部署请求,生成对应的任务,将所述任务添加到任务队列中,包括:
14、基于所述部署请求,生成对应的任务;
15、基于etcd服务的key watch机制,将所述任务添加到任务队列中。
16、在其中的一些实施例中,根据所述服务部署信息和预设配置模板,生成符合当前环境的服务配置文件,包括:
17、在k8s环境下或docker环境下,按预设格式,将所述服务部署信息填入所述预设配置模板,生成符合当前环境的服务配置文件。
18、在其中的一些实施例中,所述方法还包括:
19、按预设时间和预设查询次数,查询所述服务运行的服务状态;
20、根据所述服务状态和所述数据库中的所述服务部署信息,判定所述服务的版本是否一致;
21、若一致,则检查服务的健康状态,得到健康状态信息;
22、若不一致,则对所述服务进行重新部署或升级。
23、在其中的一些实施例中,所述方法还包括:
24、接收上报的所述健康状态信息;
25、将所述健康状态信息存储到所述数据库中,并按接收的时间对所述数据库中的健康状态信息进行管理。
26、第二个方面,在本实施例中提供了一种服务容器化的部署装置,包括:
27、获取模块,用于获取用户发起服务部署的部署请求,将所述部署请求中的服务部署信息存储到数据库中;
28、处理模块,用于基于所述部署请求,生成对应的任务,将所述任务添加到任务队列中;所述任务队列中的每个所述任务对应一对键值对;
29、配置模块,用于在所述任务队列发生变化时,基于所述任务从所述数据库中获取对应的所述服务部署信息;根据所述服务部署信息和预设配置模板,生成符合当前环境的服务配置文件;
30、管理模块,用于基于所述服务配置文件,将所述服务部署到所述当前环境的集群中。
31、第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的服务容器化的部署方法。
32、第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的服务容器化的部署方法。
33、与相关技术相比,在本实施例中提供的服务容器化的部署方法、装置、计算机设备和存储介质,通过获取用户发起服务部署的部署请求,将部署请求中的服务部署信息存储到数据库中;基于部署请求,生成对应的任务,将任务添加到任务队列中;任务队列中的每个任务对应一对键值对;在任务队列发生变化时,基于任务从数据库中获取对应的服务部署信息;根据服务部署信息和预设配置模板,生成符合当前环境的服务配置文件;基于服务配置文件,将服务部署到当前环境的集群中,解决了相关技术中脚本文件存在错误使得容器部署失败,导致容器部署效率较低的问题,实现了自动生成符合当前环境的服务配置文件,并完成服务容器化的部署到当前环境的集群中,提高部署效率。
34、本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
本文档来自技高网...【技术保护点】
1.一种服务容器化的部署方法,其特征在于,包括:
2.根据权利要求1所述的服务容器化的部署方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的服务容器化的部署方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的服务容器化的部署方法,其特征在于,基于所述部署请求,生成对应的任务,将所述任务添加到任务队列中,包括:
5.根据权利要求1所述的服务容器化的部署方法,其特征在于,根据所述服务部署信息和预设配置模板,生成符合当前环境的服务配置文件,包括:
6.根据权利要求1所述的服务容器化的部署方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的服务容器化的部署方法,其特征在于,所述方法还包括:
8.一种服务容器化的部署装置,其特征在于,包括:
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至权利要求7中任一项所述的服务容器化的部署方法的步骤。
10.一种计算机可读存储介质,
...【技术特征摘要】
1.一种服务容器化的部署方法,其特征在于,包括:
2.根据权利要求1所述的服务容器化的部署方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的服务容器化的部署方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的服务容器化的部署方法,其特征在于,基于所述部署请求,生成对应的任务,将所述任务添加到任务队列中,包括:
5.根据权利要求1所述的服务容器化的部署方法,其特征在于,根据所述服务部署信息和预设配置模板,生成符合当前环境的服务配置文件,包括:
6.根据权利要求1所述的服务容器化的部...
【专利技术属性】
技术研发人员:张帅,端豪,齐亚庆,孙洋,叶佳欣,
申请(专利权)人:杭州高新区滨江区块链与数据安全研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。