1.一种工业应用快速部署的方法,其特征在于,包括以下步骤:
s1、为了达到快速部署的目的,首先对工业应用进行抽象,提取出所有工业应用相同的部分,得到抽象概念;
s2、抽象化后,定义实例的概念,将上述抽象概念与工业应用关联起来,通过k8s提供的资源管理方法,实例申请和使用底层硬件资源,包括cpu、内存、存储、网络资源;
s3、针对s1中的抽象概念,将工业应用运行的需求参数化,定义不同工业应用运行需要的模板;
s4、通过定义k8s中的anotation提供对相关应用运行状态的跟踪与查询,在实例的部署文件中均加入平台相关的annotation;
s5、根据用户输入的参数结合步骤s3的模板文件,生成完整的kubernetes部署文件存储在实例中,部署时候,通过与kubernetes的apiserver组件进行交互,将生成的部署文件通过httppost请求发送到apiserver中,这样就将用户定制的工业应用快速部署到kubernetes集群中,实现了工业应用的快速部署。
2.如权利要求1所述的一种工业应用快速部署的方法,其特征在于,所述步骤s1中,抽象概念包括:runtime运行环境、cpu与内存使用需求、持久化存储使用需求、对外服务端口、依赖的其他服务资源。
3.如权利要求2所述的一种工业应用快速部署的方法,其特征在于,所述步骤s2中,实例的定义如下:
其中实例的instancerevision(历史版本信息)中保存部署在kubernetes集群中的yaml文件,用于控制kubernetes使用底层计算资源(如cpu、内存、存储、网络资源等);
instancerevision的定义如下:
上述manifest字段封装了kubernetes的部署文件,一个kubernetes部署文件的示例如下:
这个部署文件包含数百个不同的配置字段,使用实例这个概念将复杂的yaml文件隐藏起来;s1中工业应用快速部署需要的不同抽象概念,按照如下的方式与上述kubernetes部署文件一一对应起来:
(1)image字段描述工业应用runtime运行时环境;
(2)resources字段描述工业应用运行所需的cpu内存资源;
(3)port字段描述工业应用运行暴露的外部端口号;
(4)persistentvolumeclaim部分描述工业应用运行所需要存储资源;
(5)service部分描述工业应用运行所依赖的外部服务;
通过实例这个概念,将复杂的kubernetes部署文件以清晰易懂的方式呈现在用户面前。
4.如权利要求3所述的一种工业应用快速部署的方法,其特征在于,所述步骤s3中:
模板文件的示例如下:
其中使用${}符号表示的字段就是运行不用工业应用所需要的参数,用户只需要根据适当可视化引导填入这些参数,即实现快速部署工业应用,不需要处理复杂kubernetes部署文件,同时也能够使用kubernetes系统提供的强大云原生生态,通过对单个工业应用的模板化定义实现去平台的多环境部署与扩容。
5.如权利要求4所述的一种工业应用快速部署的方法,其特征在于,所述步骤s4中,具体步骤如下:
adc.htres.cn/user-id:"${user_id}"
adc.htres.cn/instance-id:"${instance_id}"
其中${user_id}是实例的拥有者id,表示资源的所有者,${instance_id}是实例的id,表示具体的资源唯一标识,通过这两个annotation,定位到该实例的运行状态和资源消耗数据。