发明内容
本发明实施例提供一种容器平台的计费方法及***,以实现对容器平台中的多个容器集群进行兼容性的多集群数据采集、计费以及费用展示。
第一方面,本发明实施例提供了一种容器平台的计费方法,包括:
在容器平台中确定预设数量的待计费容器集群;
获取各待计费容器集群的管理节点提供的原生接口,分别为各原生接口对接插件形式的数据采集器,并通过数据采集器对各待计费容器集群进行计费信息采集;
对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据;
通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示。
可选的,通过数据采集器对各待计费容器集群进行计费信息采集,包括:
通过与当前数据采集器对接的目标待计费容器集群的管理节点的原生接口,实时从管理节点中获取目标待计费容器集群中的各工作节点反馈的服务操作记录;
将存在操作更新的目标服务的操作记录作为目标待计费容器集群的计费信息。
可选的,对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据,包括:
以单位收费时间为定时长,定时对当前待计费容器集群在当前单位收费时间内的计费信息进行归类处理,以将计费信息中的底层基础数据转换为业务数据;
根据业务数据统计当前待计费容器集群在当前单位收费时间内使用的计费资源数量,根据计费策略计算与计费资源数量对应的费用增量数据;
将费用增量数据与当前待计费容器集群的历史费用数据进行求和,得到当前待计费容器集群的费用数据。
可选的,在得到待计费容器集群的费用数据之后,还包括:
通过H-Base1接口对待计费容器集群的费用数据进行支付。
可选的,在通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示之前,还包括:
为各待计费容器集群配置对应的对外接口,并将各对外接口,分别以插件形式挂载到容器平台中的前端***。
可选的,通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示,包括:
通过与目标待计费容器集群对应的目标对外接口,将目标待计费容器集群的费用数据发送至目标对外接口所挂载的前端***进行展示。
可选的,待计费容器集群的管理节点提供的原生接口包括Kubernetes接口。
可选的,对外接口为Restful接口。
可选的,容器平台包括多集群版本的PaaS平台。
第二方面,本发明实施例还提供了一种容器平台的计费***,包括:确定模块,预设数量的插件形式的数据采集器,数据处理模块以及对外接口;
确定模块,用于在容器平台中确定预设数量的待计费容器集群;
数据采集器,用于获取目标待计费容器集群的管理节点提供的原生接口,并与原生接口对接,通过原生接口对目标待计费容器集群进行计费信息采集;
数据处理模块,用于对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据;
对外接口,用于将各待计费容器集群的费用数据发送至前端***进行展示。
本发明实施例的技术方案,通过在容器平台中确定预设数量的待计费容器集群;获取各待计费容器集群的管理节点提供的原生接口,分别为各原生接口对接插件形式的数据采集器,并通过数据采集器对各待计费容器集群进行计费信息采集;对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据;通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示,解决了现有技术中只能对一个容器集群中的各容器进行对应的数据采集和计费的问题,实现了对容器平台中的多个容器集群进行兼容性的多集群数据采集、计费以及费用展示。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的一种容器平台的计费方法的流程图,本实施例可适用于对多个容器集群同时进行多集群数据采集和计费的情况,该方法可以由容器平台的计费***来执行,具体包括如下步骤:
步骤110、在容器平台中确定预设数量的待计费容器集群。
其中,容器集群中包括多个容器,容器一般指Docker容器,任何应用程序和它的所有依赖项都可以打包成一个文件放入到一个可移植的容器中,然后发布到任何安装有容器引擎的服务器上,进行应用程序部署。待计费容器集群包括租户租来部署应用程序并且占用平台资源的容器集群,预设数量表示某个租户在容器平台中租用的容器集群数量。
可选的,容器平台包括多集群版本的PaaS平台。
本实施例中,容器平台可以是包括多个容器集群的PaaS平台,其中,PaaS平台可以提供应用程序的开发和运行环境。
本实施例中,由于容器平台是根据使用的资源数量向租户进行收费的,因此,在多容器集群多租户模式下,需要对各租户租用的多个待计费容器集群同时进行计费信息采集,以便于实时计算该租户的费用数据。
步骤120、获取各待计费容器集群的管理节点提供的原生接口,分别为各原生接口对接插件形式的数据采集器,并通过数据采集器对各待计费容器集群进行计费信息采集。
本实施例中,容器集群包括管理节点和多个工作节点,其中,管理节点是容器集群的管理控制中心,可以对集群中的各工作节点进行维护管理,工作节点是运行业务应用的容器。为了获取各待计费容器集群使用的资源数量,可以先获取各待计费容器集群的管理节点提供的原生接口,然后分别为各原生接口对接一个数据采集器,以使各数据采集器通过对接的原生接口对待计费容器集群进行计费信息采集。
本实施例中,为了能够灵活选择容器平台中的容器集群进行数据采集,将数据采集器设置为插件形式,使得数据采集器具有可插拔的特点。通过将数据采集器***待计费容器集群的管理节点上,即可利用该数据采集器采集该待计费容器集群的计费信息。
可选的,通过数据采集器对各待计费容器集群进行计费信息采集,可以包括:通过与当前数据采集器对接的目标待计费容器集群的管理节点的原生接口,实时从管理节点中获取目标待计费容器集群中的各工作节点反馈的服务操作记录;将存在操作更新的目标服务的操作记录作为目标待计费容器集群的计费信息。
本实施例中,为了提高计费精度,以应用程序中的服务为粒度,对容器集群进行计费信息采集。可以通过与当前数据采集器对接的目标待计费容器集群的管理节点的原生接口,实时获取管理节点中存储的各工作节点实时上报的服务操作记录,并从中选择出存在操作更新的目标服务,例如,存在部署、修改、删除以及停止等操作的服务,将各目标服务对应的操作记录作为目标待计费容器集群的计费信息,通过目标服务所在容器上挂载的存储卷声明(Persistent Volume Claim,PVC)将计费信息持久化存储到数据库中。
可选的,待计费容器集群的管理节点提供的原生接口包括Kubernetes接口。
本实施例中,集群的管理节点提供的Kubernetes接口是获取容器集群的资源使用情况的唯一操作入口,因此,通过监控管理节点的Kubernetes接口,可以实时获取待计费容器集群中的各容器的资源使用变化量。
步骤130、对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据。
本实施例中,根据采集到的各待计费容器集群的计费信息,分别对各待计费容器集群的资源使用量进行统计,例如,统计CPU、内存和磁盘等资源的使用量,并根据容器平台的计费策略,计算出各待计费容器集群的详细费用数据,以及租户需要支付的总费用数据。将得到的费用数据持久化存入数据库中,作为对外提供的费用账单。
其中,每个待计费容器集群对应一个计费策略,同一个租户的各个待计费容器集群可以对应相同的计费策略,也可以对应不同的计费策略。
步骤140、通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示。
本实施例中,为了使租户得知当前待支付的总费用数据以及详细费用数据,可以通过对外接口从数据库中获取各待计费容器集群的相关费用数据,并发送至前端***进行展示。其中,前端***可以是门户网站。
可选的,对外接口为Restful接口。
本实施例中,可以遵循超文本传输协议(HyperText Transfer Protocol,HTTP),将JSON格式的费用数据通过Restful接口形式对外提供。其中,Restful接口可以实现前后端分离,即,后端处理数据并以JSON格式传输出去,前端接收到数据后,只负责对数据进行展示和渲染,不对数据做其他任何处理。
本发明实施例的技术方案,通过在容器平台中确定预设数量的待计费容器集群;获取各待计费容器集群的管理节点提供的原生接口,分别为各原生接口对接插件形式的数据采集器,并通过数据采集器对各待计费容器集群进行计费信息采集;对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据;通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示,解决了现有技术中只能对一个容器集群中的各容器进行对应的数据采集和计费的问题,实现了对容器平台中的多个容器集群进行兼容性的多集群数据采集、计费以及费用展示。
实施例二
图2是本发明实施例二中的一种容器平台的计费方法的流程图,本实施例在上述实施例的基础上进一步细化,提供对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据的具体步骤,以及,通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示的具体步骤。下面结合图2对本申请第二实施例提供的一种容器平台的计费方法进行说明,包括以下步骤:
步骤210、在容器平台中确定预设数量的待计费容器集群。
步骤220、获取各待计费容器集群的管理节点提供的原生接口,分别为各原生接口对接插件形式的数据采集器,并通过数据采集器对各待计费容器集群进行计费信息采集。
步骤230、以单位收费时间为定时长,定时对当前待计费容器集群在当前单位收费时间内的计费信息进行归类处理,以将计费信息中的底层基础数据转换为业务数据。
本实施例中,单位收费时间也就是收费间隔,是分钟级别的时间长度,可以是5分钟、8分钟或者其他的时间长度。根据获取到的各待计费容器集群的计费信息,每间隔单位收费时间,就对当前待计费容器集群的当前未处理的计费信息进行归类处理,以将当前未处理的计费信息中的底层基础数据,转换为CPU使用量、内存使用量以及磁盘使用量等符合要求的业务数据,以便于后续对容器集群的计费资源数量进行统计。
本实施例中,通过将单位收费时间由原来的小时级别修改为分钟级别,可以实现对计费信息的迸发处理优化,并且可以保证展示计费数据的数据延迟时间小于单位收费时间。例如,计费信息的处理周期为每5分钟进行一次,则计费数据的展示存在小于5分钟的数据延迟。
步骤240、根据业务数据统计当前待计费容器集群在当前单位收费时间内使用的计费资源数量,根据计费策略计算与计费资源数量对应的费用增量数据。
本实施例中,对计费信息进行归类处理后,对得到的业务数据进行统计,确定当前待计费容器集群在收费间隔内使用的计费资源数量,然后根据与当前待计费容器集群对应的计费策略,计算与计费资源数量对应的费用增量数据,即当前待计费容器集群在当前单位收费时间内的消费的费用数据。其中,费用增量数据有助于租户了解应用或者服务在当前待计费容器集群中的运行情况。
步骤250、将费用增量数据与当前待计费容器集群的历史费用数据进行求和,得到当前待计费容器集群的费用数据。
本实施例中,由于租户最终需要对当前待计费容器集群消费的总数据进行支付,因此,每次计算出当前待计费容器集群当前单位收费时间内的费用增量数据后,既要存储当前的费用增量数据作为费用账单中的详细费用数据,又要将当前的费用增量数据与历史费用数据进行累加,求得当前待计费容器集群到当前时刻为止累积的总费用数据。
可选的,在得到待计费容器集群的费用数据之后,还可以包括:通过H-Base1接口对待计费容器集群的费用数据进行支付。
本实施例中,为了便于租户进行费用支付,可以向租户提供H-Base1接口,通过H-Base1接口对待计费容器集群的费用进行支付,并将收费记录持久化存储到数据库中。
步骤260、通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示。
本实施例中,可以通过对外接口从数据库中获取各待计费容器集群的相关费用数据,例如,计费信息、费用账单以及收费记录,并将相关费用数据都发送至与对外接口对接的前端***进行展示。
可选的,在通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示之前,还可以包括:为各待计费容器集群配置对应的对外接口,并将各对外接口,分别以插件形式挂载到容器平台中的前端***。
本实施例中,为了使得各待计费容器集群的相关费用数据可以分别展示在不同的前端***,分别为各待计费容器集群配置一一对应的对外接口,例如,Restful接口,并将各对外接口以前端插件的形式分别挂载到不同的前端***。
可选的,通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示,可以包括:通过与目标待计费容器集群对应的目标对外接口,将目标待计费容器集群的费用数据发送至目标对外接口所挂载的前端***进行展示。
本实施例中,当要对目标待计费容器集群的相关费用数据进行展示时,先获取与目标待计费容器集群对应的目标Restful接口,通过目标Restful接口,将目标待计费容器集群的计费信息、费用账单以及收费记录发送到目标Restful接口挂载的前端***中,例如,前端门户网站中进行展示。
本发明实施例的技术方案,通过在容器平台中确定预设数量的待计费容器集群;获取各待计费容器集群的管理节点提供的原生接口,分别为各原生接口对接插件形式的数据采集器,并通过数据采集器对各待计费容器集群进行计费信息采集;对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据;通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示,解决了现有技术中只能对一个容器集群中的各容器进行对应的数据采集和计费的问题,实现了对容器平台中的多个容器集群进行兼容性的多集群数据采集、计费以及费用展示。
实施例三
图3是本发明实施例三中的一种容器平台的计费方法的流程图,本实施例可以与上述实施例中各个可选方案结合。具体的,参考图3,该方法可以包括如下步骤:
步骤310、通过插件形式的数据采集器,对PaaS平台中的预设数量的待计费容器集群进行多集群数据采集,得到各待计费容器集群的计费信息。
本实施例中,PaaS平台是多集群版本的容器平台。为了能够对PaaS平台中的多个待计费容器集群同时进行兼容性的数据采集,分别为各待计费容器集群的管理节点提供的Kubernetes接口对接一个数据采集器,使得数据采集器可以通过对接的Kubernetes接口,实时监听管理节点中存储的各工作节点的服务操作记录,并获取存在服务状态变化的操作记录作为计费信息,例如,对服务进行部署、修改、删除以及停止等操作的记录,监控指标包括CPU、内存以及磁盘的使用量。并实时将获取的操作记录存储到数据库中,避免使用轮询接口由于时间误差无法实时获取服务状态变化的情况,准确实时的获取应用中的服务创建、删除、修改等信息。其中,数据采集器采集的计费信息为未经处理的基础数据。
本实施例中,计费***将数据采集器独立出来,以服务形式集成在Web项目内,废除扫描的数据采集方式,为PaaS平台中的每一个待计费容器集群都配置一个数据采集器,负责采集该容器集群中存在服务状态变化的操作记录作为计费信息,并持久化存储到数据库中。通过实时的将计费信息写入数据库,保证获取准确的资源数据变化时间,精准计费。
步骤320、定时对各待计费容器集群的计费信息进行计费处理,并对得到各待计费容器集群的费用数据进行持久化存储。
本实施例中,以单位收费时间设置定时任务,定时对数据库中存储的各待计费容器集群的计费信息进行计费处理,计费处理分为两个方面,其一,由于底层基础数据与业务数据有较大差别,先对计费信息中的底层基础数据进行归类处理,变成符合要求的业务数据;其二,对业务数据进行统计,确定当前待计费容器集群在单位收费时间内使用的计费资源数量,根据计费策略计算与计费资源数量对应的费用数据,将费用数据持久化存储到数据库中,作为对外提供数据的同时也作为收费历史。
本实施例中,废除小时级别的最小计费单位,将单位收费时间修改为分钟级别,实现对计费信息的迸发处理优化,并且可以保证展示计费数据的数据延迟时间小于单位收费时间。例如,计费信息的处理周期为每5分钟进行一次,则计费数据的展示存在小于5分钟的数据延迟。
本实施例中,可以在多个容器集群下,支持租户力度费用统计。各待计费容器集群中的应用状态变化通过接口的形式实时采集和记录,进而根据采集的信息确定集群使用的资源的数量变化,根据使用的资源数量实时调整该容器集群的费用计算,生成新的费用数据。
步骤330、通过插件形式的Restful接口,将各待计费容器集群的费用数据发送至对应的前端***。
本实施例中,计费信息和费用数据持久化存储的最终目的是为了对外提供数据服务,为了使得各待计费容器集群的费用数据可以分别展示在不同的前端***,分别为各待计费容器集群配置对应的Restful接口,并将各Restful接口以插件形式直接挂载到PaaS平台的底层dashboard前端。当要对目标待计费容器集群的费用数据进行展示时,遵循HTTP协议,将JSON格式的集群的费用数据通过Restful接口形式对外提供,对接扣费模块可直接依据API调取计费接口获取应用费用信息。
本实施例中,为了便于租户进行费用支付,可以向租户提供H-Base1接口,通过H-Base1接口对待计费容器集群的费用进行支付,并将收费记录持久化存储到数据库中。
步骤340、通过前端***对接收的待计费容器集群的费用数据进行展示。
本实施例中,支持在门户网站上对容器集群的费用数据进行展示。在PaaS平台的多集群面板中,将以前端插件形式将Restful接口***前端门户网站,并将容器集群的计费信息、费用账单以及收费记录等相关费用数据汇总至门户网站做选择性展示,展示的数据至少包括总费用数据、详细费用数据、磁盘计费情况三个部分。
实施例四
图4是本发明实施例四中的一种容器平台的计费***的结构示意图,本实施例可适用于对任务进行并发调度的情况。如图4所示,该***包括:确定模块410,预设数量的插件形式的数据采集器420,数据处理模块430以及对外接口440;
确定模块410,用于在容器平台中确定预设数量的待计费容器集群;
数据采集器420,用于获取目标待计费容器集群的管理节点提供的原生接口,并与原生接口对接,通过原生接口对目标待计费容器集群进行计费信息采集;
数据处理模块430,用于对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据;
对外接口440,用于将各待计费容器集群的费用数据发送至前端***进行展示。
可选的,数据采集器420,具体用于:通过与当前数据采集器对接的目标待计费容器集群的管理节点的原生接口,实时从管理节点中获取目标待计费容器集群中的各工作节点反馈的服务操作记录;将存在操作更新的目标服务的操作记录作为目标待计费容器集群的计费信息。
可选的,数据处理模块430,具体用于:以单位收费时间为定时长,定时对当前待计费容器集群在当前单位收费时间内的计费信息进行归类处理,以将计费信息中的底层基础数据转换为业务数据;根据业务数据统计当前待计费容器集群在当前单位收费时间内使用的计费资源数量,根据计费策略计算与计费资源数量对应的费用增量数据;将费用增量数据与当前待计费容器集群的历史费用数据进行求和,得到当前待计费容器集群的费用数据。
可选的,还包括:支付模块,用于在得到待计费容器集群的费用数据之后,通过H-Base1接口对待计费容器集群的费用数据进行支付。
可选的,还包括:挂载模块,用于在通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示之前,为各待计费容器集群配置对应的对外接口,并将各对外接口,分别以插件形式挂载到容器平台中的前端***。
可选的,对外接口440,具体用于:通过与目标待计费容器集群对应的目标对外接口,将目标待计费容器集群的费用数据发送至目标对外接口所挂载的前端***进行展示。
可选的,待计费容器集群的管理节点提供的原生接口包括Kubernetes接口。
可选的,对外接口为Restful接口。
可选的,容器平台包括多集群版本的PaaS平台。
本发明实施例的技术方案,通过在容器平台中确定预设数量的待计费容器集群;获取各待计费容器集群的管理节点提供的原生接口,分别为各原生接口对接插件形式的数据采集器,并通过数据采集器对各待计费容器集群进行计费信息采集;对采集的各待计费容器集群的计费信息进行计费处理,得到各待计费容器集群的费用数据;通过对外接口将各待计费容器集群的费用数据发送至前端***进行展示,解决了现有技术中只能对一个容器集群中的各容器进行对应的数据采集和计费的问题,实现了对容器平台中的多个容器集群进行兼容性的多集群数据采集、计费以及费用展示。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。