一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

边缘计算中云边协同应用管理方法及对应的装置与流程

2022-06-16 06:44:10 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体而言,本技术涉及一种边缘计算中云边协同应用管理方法及对应的装置。


背景技术:

2.边缘计算与云计算各有所长,云计算擅长全局性、非实时、长周期的大数据处理与分析,能够在长周期维护、业务决策支撑等领域发挥优势;边缘计算更适用局部性、实时、短周期数据的处理与分析,能更好地支撑本地业务的实时智能化决策与执行。因此,边缘计算与云计算之间不是替代关系,而是互补协同关系。边缘计算与云计算需要通过紧密协同才能更好的满足各种需求场景的匹配,从而放大边缘计算和云计算的应用价值。边缘计算不仅靠近执行单元,更是云端所需高价值数据的采集和初步处理单元,可以更好地支撑云端应用;反之,云计算通过大数据分析优化输出的业务规则或模型可以下发到边缘侧,边缘计算基于新的业务规则或模型运行。
3.边缘节点由于部署在边缘侧,通常只有数台服务器组成的虚拟化资源池,但是终端的各类设备是通过边缘侧接入边缘平台的,因此通常来说,边缘侧的资源短缺的压力比较大。在如医疗、工业、车联网等很多场景中,许多终端、传感器通过网络接入到边缘平台中。给边缘云提出了更高的要求。在边缘云中,存在大量的多种边缘服务器和边缘终端,需要通过边缘云进行统一管理,并实现对边缘应用的支持。中心云管理多个边缘云平台,工业pc和大量的网关,而边缘云则通过边缘网关接入各种设备、传感器等。
4.云边协同则包含了计算资源、安全策略、应用管理、业务管理等方面的协同。应用管理协同指边缘节点提供网络增值应用部署与运行环境;云端实现对边缘节点增值网络应用的生命周期管理,包括应用的推送、安装、卸载、更新等。中心节点可以对已经存在的应用镜像在不同的边缘云上进行孵化启动,完成对应用的高可用保障和热迁移。目前,云边应用管理协同通常会把边缘计算资源以云原生的方式做成一个容器集群,云端连接边缘容器集群接口进行应用的安装部署以及生命周期管理等。
5.但是,由于边缘计算资源的多样性,每个边缘云计算资源不同,可能以虚机或者物理机的行态存在,或者是容器行态存在,亦或者同一个边缘云同时存在容器资源池和虚机资源,若针对各中边缘云计算资源执行单独的应用管理策略,将大大降低运维效率,提高运维成本,因此,亟需提供一种新的云边协同用于管理方案。


技术实现要素:

6.本技术的目的旨在至少能解决上述的技术缺陷之一,本技术实施例所提供的技术方案如下:
7.第一方面,本技术实施例提供了一种边缘计算中云边协同应用管理方法,包括:
8.通过中心云确定应用管理对应的目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的应用实例数量,并向边缘云发送携带有目标边缘虚机
列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的虚机实例数量的应用管理指令;
9.通过边缘云解析应用管理指令,获取目标边缘虚机列表、目标容器集群api server组件地址和应用管理指令类型;
10.若应用管理指令的类型为应用部署指令,则通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例。
11.在本技术的一种可选实施例中,通过中心云确定应用管理对应的目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的应用实例数量,包括:
12.在进行应用部署时,通过中心云获取应用部署配置信息和各边云虚机资源情况;
13.基于应用配置信息确定容器实例数量、虚机实例数量、以及每一虚机实例所需的cpu数量和内存数量;基于各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量;
14.基于虚机实例数量、每一虚机实例所需的cpu数量和内存数量、以及各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量,确定目标边缘虚机列表以及各目标边缘虚机对应的应用实例数量,基于容器实例数量,确定向目标容器集群apiserver发起请求实例副本参数值。
15.在本技术的一种可选实施例中,基于虚机实例数量、每一虚机实例所需的cpu数量和内存数量、以及各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量,确定目标边缘虚机列表以及各目标边缘虚机对应的应用实例数量,包括:
16.将各边缘虚机中可用cpu数量、可用内存数量分别不小于每一虚机实例所需的cpu数量和内存数量的边缘虚机,确定为待选目标边缘虚机;
17.若确定出的待选目标边缘虚机的数量不小于虚机实例数量,则从确定出的待选目标边缘虚机中随机选取与虚机实例数量对应数量的待选目标边缘虚机,将选取出的待选目标边缘虚机确定为目标边缘虚机列表中的目标边缘虚机,且各目标边缘虚机对应的应用实例数量为1;
18.若确定出的待选目标边缘虚机的数量小于虚机实例数量,则将确定出的待选目标边缘虚机都确定为目标边缘虚机列表中的目标边缘虚机,并基于各待选目标边缘虚机所支持的最大虚机实例数量的比值分配对应的应用实例数量。
19.在本技术的一种可选实施例中,通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例,包括:
20.通过边缘云调用容器集群api server组件接口,并通过容器集群api server组件接口从边缘软件资产库中拉取容器实例对应的软件镜像包,并将软件镜像包安装至目标容器集群api server组件地址对应的目标容器集群;
21.通过边缘云调用各目标边缘虚机的边缘代理,并通过边缘代理从边缘软件资产库中拉取虚机实例对应的软件包,并将软件包安装至对应的目标边缘虚机。
22.在本技术的一种可选实施例中,该方法还包括:
23.若通过容器集群接口从边缘软件资产库中没有拉取容器实例对应的软件镜像包,和/或,通过边缘代理从边缘软件资产库中没有拉取虚机实例对应的软件包,则通过边缘软件资产库从中心云中获取容器实例对应的软件镜像包和/或虚机实例对应的软件包。
24.在本技术的一种可选实施例中,该方法还包括:
25.若应用管理指令的类型为应用生命周期管理指令,则通过边缘云调用容器集群接口和各目标边缘虚机的边缘代理,并通过容器集群接口对各目标容器中的容器实例执行应用生命周期管理指令,通过各边缘代理对各目标虚机中的虚机实例执行应用生命周期管理指令。
26.在本技术的一种可选实施例中,该方法还包括:
27.若应用管理指令的类型为应用服务开放指令,则通过边缘云调用容器集群接口和各目标边缘虚机的边缘代理,并通过容器集群接口基于反向代理traefik proxy对各目标容器中的容器实例执行应用服务开放指令,通过各边缘代理基于反向代理traefik proxy对各目标虚机中的虚机实例执行应用服务开放指令。
28.第二方面,本技术实施例提供了一种边缘计算中云边协同应用管理装置,包括:
29.应用管理指令下发模块,用于通过中心云确定应用管理对应的目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的应用实例数量,并向边缘云发送携带有目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的虚机实例数量的应用管理指令;
30.应用管理指令类型确定模块,用于通过边缘云解析应用管理指令,获取目标边缘虚机列表、目标容器集群api server组件地址和应用管理指令类型;
31.应用部署模块,用于若应用管理指令的类型为应用部署指令,则通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例。
32.在本技术的一种可选实施例中,应用管理指令下发模块具体用于:
33.在进行应用部署时,通过中心云获取应用部署配置信息和各边云虚机资源情况;
34.基于应用配置信息确定容器实例数量、虚机实例数量、以及每一虚机实例所需的cpu数量和内存数量;基于各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量;
35.基于虚机实例数量、每一虚机实例所需的cpu数量和内存数量、以及各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量,确定目标边缘虚机列表以及各目标边缘虚机对应的应用实例数量,基于容器实例数量,确定目标容器集群api server组件地址。
36.在本技术的一种可选实施例中,应用管理指令下发模块进一步用于:
37.将各边缘虚机中可用cpu数量、可用内存数量分别不小于每一虚机实例所需的cpu数量和内存数量的边缘虚机,确定为待选目标边缘虚机;
38.若确定出的待选目标边缘虚机的数量不小于虚机实例数量,则从确定出的待选目标边缘虚机中随机选取与虚机实例数量对应数量的待选目标边缘虚机,将选取出的待选目标边缘虚机确定为目标边缘虚机列表中的目标边缘虚机,且各目标边缘虚机对应的应用实例数量为1;
39.若确定出的待选目标边缘虚机的数量小于虚机实例数量,则将确定出的待选目标边缘虚机都确定为目标边缘虚机列表中的目标边缘虚机,并基于各待选目标边缘虚机所支持的最大虚机实例数量的比值分配对应的应用实例数量。
40.在本技术的一种可选实施例中,应用部署模块具体用于:
41.通过边缘云调用容器集群api server组件接口,并通过容器集群api server组件接口从边缘软件资产库中拉取容器实例对应的软件镜像包,并将软件镜像包安装至目标容器集群api server组件地址对应的目标容器集群;
42.通过边缘云调用各目标边缘虚机的边缘代理,并通过边缘代理从边缘软件资产库中拉取虚机实例对应的软件包,并将软件包安装至对应的目标边缘虚机。
43.在本技术的一种可选实施例中,应用部署模块进一步用于:
44.若通过容器集群接口从边缘软件资产库中没有拉取容器实例对应的软件镜像包,和/或,通过边缘代理从边缘软件资产库中没有拉取虚机实例对应的软件包,则通过边缘软件资产库从中心云中获取容器实例对应的软件镜像包和/或虚机实例对应的软件包。
45.在本技术的一种可选实施例中,该装置还包括应用生命周期管理模块,用于:
46.若应用管理指令的类型为应用生命周期管理指令,则通过边缘云调用容器集群接口和各目标边缘虚机的边缘代理,并通过容器集群接口对各目标容器中的容器实例执行应用生命周期管理指令,通过各边缘代理对各目标虚机中的虚机实例执行应用生命周期管理指令。
47.在本技术的一种可选实施例中,该装置还包括应用服务开放模块,用于:
48.若应用管理指令的类型为应用服务开放指令,则通过边缘云调用容器集群接口和各目标边缘虚机的边缘代理,并通过容器集群接口基于反向代理traefik proxy对各目标容器中的容器实例执行应用服务开放指令,通过各边缘代理基于反向代理traefik proxy对各目标虚机中的虚机实例执行应用服务开放指令。
49.第三方面,本技术实施例提供了一种电子设备,包括存储器和处理器;
50.存储器中存储有计算机程序;
51.处理器,用于执行计算机程序以实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
52.第四方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
53.第五方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
54.本技术提供的技术方案带来的有益效果是:
55.通过中心云确定出应用管理对应的目标容器集群api server组件地址、目标边缘虚机列表以及各边缘虚机中对应的虚机实例数量,并将确定出的这些信息发送至边缘云,边缘云进行解析后,根据应用管理类型进行相应的应用管理,在需要进行应用部署时,通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和
各目标边缘虚机对应的虚机实例数量创建对应的应用实例,即完成了应用部署。该方案,通过云端统一确定应用管理相关信息后,再通过边缘端统一执行,无需根据边缘节点的计算资源类型单独进行应用管理,即统一了不同计算类型的应用管理,大大提高了运维效率,降低了运维成本。
附图说明
56.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
57.图1为本技术实施例提供的云边协同应用管理管理系统架构图;
58.图2为本技术实施例提供的一种边缘计算中云边协同应用管理方法的流程示意图;
59.图3为本技术实施例的一个示例中资源调度器进行资源调度的流程示意图;
60.图4为本技术实施例的一个示例中应用部署的流程示意图;
61.图5为本技术实施例的一个示例中应用生命周期管理流程示意图;
62.图6为本技术实施例的一个示例中应用服务开放的流程示意图;
63.图7为本技术实施例提供了一种边缘计算中云边协同应用管理装置的结构框图;
64.图8为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
65.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
66.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
67.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
68.图1为本技术实施例提供的云边协同应用管理管理系统架构图,该系统是实现本技术提供的边缘计算中云边协同应用管理方法的基础,该系统分为云端和边缘端。
69.具体地,云端设置有云端控制台(即后文中的中心云),包括:软件资产库管理模块、边缘主机管理模块、边缘容器集群管理接口模块、边缘服务开放管理模块、边缘应用生命周期管理模块以及资源调度器模块。具体来说,各模块的功能和作用如下:
70.软件资产库管理模块:统一了镜像资源和软件包两类资源,软件资产模型主要属性有软件资产编号、软件资产名称、简介和图标,同一编号下软件资产可以包含不同版本的软件资产,如业务应用a包含1.0和1.1版本,每个版本下对应有软件镜像包,软件包(业务应
用的war包或者jar包,关联运行环境如java应用运行环境需要的jdk或c 开发的应用需要的运行环境)。通过软件资产库可配置业务应用的基本信息,以及上传下载不同版本的业务应用,软件资产库管理模块可放开接口对接devops(development and operations,过程、方法与系统的统称)平台ci/cd(持续集成/持续部署)流水线。
71.边缘主机管理模块:包含边缘虚机或物理机ip,边缘主机开放端口范围,边缘主机账号密码,cpu,内存,可用cpu,可用内存等信息维护。
72.边缘容器集群管理接口模块:边缘
73.边缘服务开放模块:指边缘主机上应用启动后根据云端控制台配置的开放策略实时更新边缘服务开放配置文件,以达到边缘应用负载均衡,限流等目的。
74.边缘应用生命周期管理模块:主要包含边缘应用模板管理,边缘应用生命周期管理。应用模板管理统一了虚机应用和容器应用的配置,模板主要包含应用基本信息配置、资源配置信息和运行时配置。应用基础信息属性包含应用编码、应用名称和描述信息。应用资源配置信息包含模板关联的软件资产选择、软件资产版本选择、单应用运行需要的cpu数、内存数和网络配置(容器端口,协议,是否开启负载均衡等)。应用运行时配置包含弹性扩缩容配置(初始副本,最大副本,最小副本,扩缩容指标等)、环境变量配置、健康检测配置(检测周期配置,检测执行命令等)和脚本配置(部署脚本,启动脚本,停止脚本等)。边缘应用生命周期管理是指对部署在边缘的应用进行部署、启动、停止、卸载等操作,应用部署的时候可以配置部署容器应用实例比例和虚拟应用实例比例,后台调度器根据比例进行资源调度。
75.资源调度器模块:根据应用部署配置的副本数(即应用总的实例数量),以及容器和虚机应用实例比例,计算容器实例数以及虚机实例数。虚机实例根据虚机主机池中的可用cpu,内存,存储信息计算虚机主机列表,和每台主机上部署实例数量。
76.具体地,在边缘端设置有边缘edgeserver(边缘服务器)、边缘软件资产库、边缘服务网关、边缘主机、边缘edgeagent(边缘代理)。具体来说,体来说,各模块的功能和作用如下:
77.边缘edgeserver:边缘edgeserver主要是接收云端控制台下发的应用管理指令,解析出需要执行指令类型,如果是安装部署则根据调度器计算出的虚机实例数和容器实例数进行调度。虚机实例部署或执行启停时,边缘edgeserver以grpc(remote procedure call,远程过程调用)协议发送命令到边缘edgeagent,边缘edgeagent接收到命令后执行相关操作。容器实例部署或执行启停时,调用容器集群接口(例如k3s(轻量级的kubernetes)api)执行相关操作,容器集群接口或称容器集群api server组件接口,每个容器集群都有一个集群api server组件接口地址,可以调用接口地址进行应用的部署,升级等操作。需要说明的是,容器集群也可以是k8s或其他容器集群,可以根据实际需求进行选用,在本技术实施例中不做限定。
78.边缘软件资产库:作为云端软件仓库的缓存使用,避免所有软件资产直接从云端仓库拉取,造成云边协同通道堵塞。应用安装部署时,先去边缘软件资产库拉取软件资源,如果边缘软件资产库找不到需要安装的软件资源,边缘软件资产库会发起请求从云端的软件资产库管理模块同步需要的软件资源到边缘资产库,同步结束后开启安装。
79.边缘服务网关:边缘应用访问的代理层,通过服务开放配置,可以实现边缘应用服
务的负载均衡,流量管控,灰度发布等能力。
80.边缘主机:边缘虚机资源或者是边缘物理机,供调度器资源调度计算时使用。
81.边缘edgeagent:每个边缘虚机都会设置一个对应的边缘edgeagent,用于被调用执行实例安装、应用生命周期管理等操作。
82.需要说明的是,云端和边缘通过专线连接,边缘只有边缘edgeserver,边缘软件资产库可以通过专线连接云端,其他操作都需要通过边缘edgeserver转发请求。
83.由于安全性要求,边缘主机不能开放ssh(secure shell,安全外壳)协议端口,本技术实施例中边缘主机的边缘代理开放普通端口,基于grpc协议接收边缘edgeserver发送的指令。
84.可以理解的是,该系统在云边协同下,屏蔽边缘主机(虚机/物理机)、容器应用部署差异提供一致的应用管理运维操作体验,统一了软件资产模型,统一了应用模板模型,通过实现虚机和容器统一的资源调度器算法,实现了边缘和容器资源的统一调度。
85.下面将基于上述系统、系统中各模块功能以及各模块之间的交互来对本技术提出的边缘计算云边协同应用管理方法进行详细说明。
86.图2为本技术实施例提供的一种边缘计算中云边协同应用管理方法的流程示意图,如图2所示,包括:
87.步骤s201,通过中心云确定应用管理对应的目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的应用实例数量,并向边缘云发送携带有目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的虚机实例数量的应用管理指令。
88.其中,中心云即前文中的云端控制台,运维人员可以通过中心云的操作界面配置应用管理配置信息。
89.其中,边缘云更具体的是前文描述的边缘edgeserver,其能够与中心云通信,并能在调用各虚机的边缘代理以及容器集群接口。
90.其中,由于计算资源的不同,应用实例可以有虚机实例和容器实例。
91.具体地,当中心云接收到运维人员上传的应用管理配置信息后,确定出应用管理对应的目标边缘虚机列表、目标容器集群api server组件地址以及各目标边缘虚机对应的虚机示例数量。然后,中心云将确定出的上述信息携带于应用控制指令中发送至边缘云。
92.步骤s202,通过边缘云解析应用管理指令,获取目标边缘虚机列表、目标容器集群api server组件地址和应用管理指令类型。
93.具体地,应用管理指令有多种类型,包括应用部署、应用生命周期管理以及应用服务开放。边缘云在接收到应用管理至令后,对其进行解析,获取指令类型、以及其中携带的边缘虚机列表和目标容器集群api server组件地址。
94.步骤s203,若应用管理指令的类型为应用部署指令,则通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例。
95.具体地,若应用管理指令的类型为应用部署指令,则需要进行应用部署,则根据目标容器集群api server组件地址在对应的目标容器中创建容器实例,根据目标虚机列表在对应的目标虚机中创建虚机实例,需要注意的是,每个目标虚机中可以创建一个或多个虚
机实例,每个目标虚机中的虚机实例的数量已由中心云确定了,根据确定出的虚机数量创建即可。
96.本技术实施例提供的方案,通过中心云确定出应用管理对应的目标容器集群api server组件地址、目标边缘虚机列表以及各边缘虚机中对应的虚机实例数量,并将确定出的这些信息发送至边缘云,边缘云进行解析后,根据应用管理类型进行相应的应用管理,在需要进行应用部署时,通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例,即完成了应用部署。该方案,通过云端统一确定应用管理相关信息后,再通过边缘端统一执行,无需根据边缘节点的计算资源类型单独进行应用管理,即统一了不同计算类型的应用管理,大大提高了运维效率,降低了运维成本。
97.在本技术的一种可选实施例中,通过中心云确定应用管理对应的目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的应用实例数量,包括:
98.在进行应用部署时,通过中心云获取应用部署配置信息和各边云虚机资源情况;
99.基于应用配置信息确定容器实例数量、虚机实例数量、以及每一虚机实例所需的cpu数量和内存数量;基于各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量;
100.基于虚机实例数量、每一虚机实例所需的cpu数量和内存数量、以及各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量,确定目标边缘虚机列表以及各目标边缘虚机对应的应用实例数量,基于容器实例数量,确定目标容器集群api server组件地址。
101.具体地,根据应用部署时所需要部署的容器实例数量,可以确定目标容器集群api server组件地址。根据应用部署时所需要部署的虚机实例的数量、以及每一虚机实例所需的cpu数量和内存数量,去匹配资源情况合适的目标边缘虚机,以确定目标边缘虚机列表。
102.具体来说,基于虚机实例数量、每一虚机实例所需的cpu数量和内存数量、以及各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量,确定目标边缘虚机列表以及各目标边缘虚机对应的应用实例数量,具体包括:
103.将各边缘虚机中可用cpu数量、可用内存数量分别不小于每一虚机实例所需的cpu数量和内存数量的边缘虚机,确定为待选目标边缘虚机;
104.若确定出的待选目标边缘虚机的数量不小于虚机实例数量,则从确定出的待选目标边缘虚机中随机选取与虚机实例数量对应数量的待选目标边缘虚机,将选取出的待选目标边缘虚机确定为目标边缘虚机列表中的目标边缘虚机,且各目标边缘虚机对应的应用实例数量为1;
105.若确定出的待选目标边缘虚机的数量小于虚机实例数量,则将确定出的待选目标边缘虚机都确定为目标边缘虚机列表中的目标边缘虚机,并基于各待选目标边缘虚机所支持的最大虚机实例数量的比值分配对应的应用实例数量。
106.举例来说,如图3所示,当需要部署应用a时,中心云创建了应用a,配置了应用a运行使用cpu数为2,内存数为3,应用初始部署副本10个(即应用实例总数为10),虚机实例数占比70%,容器实例数占比30%。根据应用a总副本数及虚机和容器示例占用比例,计算出虚机应用实例数7,容器应用数量数3。
107.虚机应用首先从边缘虚机列表中根据每天虚机可用cpu数,可用内存数,筛选出满足应用a部署资源要求的主机(192.168.1.101,192.168.1.102,192.168.1.104,192.168.1.105)。如果筛选出的主机数大于虚机应用实例数7,那么采用随机分配方法,每台主机部署一个应用a实例。而实际情况是,只有4台满足条件,则计算每台机器上最大可以部署应用a多少个实例(即所支持的最大虚机实例数量),根据最大可部署实例进行加权平均分配算法分配每台主机上部署实例数,此例子中实例分配如下(192.168.1.101部署1个实例,192.168.1.102部署两个实例,192.168.1.104部署1个实例,192.168.1.105部署3个实例)。生成资源部署清单,即为虚机主机列表和每台部署实例数,容器部署实例数,发给边缘edgeserver。容器实例的部署则调用k3s容器集群接口创建容器实例,虚机实例的部署则分别调用目标边缘虚机列表中各边缘虚机对应的的边缘代理,完成应用创建。
108.需要说明的是,此示例中对资源不足的情况在中心云提示,以及动态调整应用实例数没有具体的叙述,旨在说明通过资源调度器对容器和虚机资源统一调度,屏蔽调度差异,相关调度算法可有不同实现方式,本技术实施例不做限定。
109.在本技术的一种可选实施例中,通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例,包括:
110.通过边缘云调用容器集群api server组件接口,并通过容器集群api server组件接口从边缘软件资产库中拉取容器实例对应的软件镜像包,并将软件镜像包安装至目标容器集群api server组件地址对应的目标容器集群;
111.通过边缘云调用各目标边缘虚机的边缘代理,并通过边缘代理从边缘软件资产库中拉取虚机实例对应的软件包,并将软件包安装至对应的目标边缘虚机。
112.具体地,在进行应用部署时,对于容器实例的部署,边缘云需要调用容器集群接口完成,对于虚机实例的部署,边缘云需要调用各目标边缘虚机的边缘代理完成。
113.进一步地,若通过容器集群接口从边缘软件资产库中没有拉取容器实例对应的软件镜像包,和/或,通过边缘代理从边缘软件资产库中没有拉取虚机实例对应的软件包,则通过边缘软件资产库从中心云中获取容器实例对应的软件镜像包和/或虚机实例对应的软件包。
114.具体来说,如图4所示,运维人员在云端控制台下发应用部署指令,通过云边协同通道以grpc协议发送指令数据包到边缘edgeserver。
115.边缘edgeserver解析收到的指令信息包,解析出指令类型(应用安装部署类型)、虚机实例数、边缘虚机列表以及容器实例数。
116.如果目标是虚机,则以grpc协议发送部署指令信息到所有虚机代理agent。边缘虚机代理agent收到边缘网关发送过来的指令,解析出指令类型为应用安装部署,先判断应用运行依赖环境(c /java/python等)是否安装,如果已安装则执行应用安装命令,否则先执行应用运行依赖环境安装,再执行应用安装。根据运行环境类型到边缘软件仓库(即边缘软件资产库)拉取运行环境需要的软件包,如果边缘软件仓库存在对应的软件包,则发起软件包安装。
117.如果目标是容器,则调用容器集群管理接口(即容器k3s集群管理api接口)执行相应的安装命令。
118.边缘虚机代理agent和容器在执行安装命令时会去边缘软件仓库拉取软件资源,当边缘软件仓库不存在需要的软件资源时,则边缘软件仓库向云端软件仓库(即云端的软件资产管理模块)发起请求,同步需要的软件包到边缘软件仓库并缓存,然后再发起软件资源安装。
119.应用安装部署完成后边缘edgeserver通过云边协同通道发送应用安装部署完成状态到云端控制台,云端控制台更新应用安装部署任务状态。
120.在本技术的一种可选实施例中,该方法还可以包括:
121.若应用管理指令的类型为应用生命周期管理指令,则通过边缘云调用容器集群接口和各目标边缘虚机的边缘代理,并通过容器集群接口对各目标容器中的容器实例执行应用生命周期管理指令,通过各边缘代理对各目标虚机中的虚机实例执行应用生命周期管理指令。
122.具体来说,如图5所示,运维人员在云端控制台下发应用生命周期管理指令,通过云边协同通道以grpc协议发送指令数据包到边缘edgeserver。
123.边缘edgeserver解析收到的指令信息包,解析出指令类型(应用生命周期管理类型)、执行目标。
124.如执行目标为虚机,则以grpc协议发送部署指令信息到列表中所有虚机代理agent(即边缘代理),则边缘虚机代理agent收到边缘edgeserver发送过来的指令,解析出指令类型为应用生命周期管理类型,具体命令(启动/停止/重启/卸载),然后在边缘虚机上执行具体指令。
125.如果执行目标是容器,则调用容器管理控制api接口执行相应的命令(启动/停止/重启/卸载)。
126.应用生命周期管理操作完成后边缘edgeserver通过云边协同通道发送应用生命周期完成状态到云端控制台,云端控制台更新应用生命周期操作任务状态。
127.在本技术的一种可选实施例中,该方法还可以包括:
128.若应用管理指令的类型为应用服务开放指令,则通过边缘云调用容器集群接口和各目标边缘虚机的边缘代理,并通过容器集群接口基于反向代理traefik proxy对各目标容器中的容器实例执行应用服务开放指令,通过各边缘代理基于反向代理traefik proxy对各目标虚机中的虚机实例执行应用服务开放指令。
129.具体来说,如图6所示,边缘应用(容器应用、虚机应用)的对外暴露可以采用traefik proxy来完成,支持对虚机应用服务和容器应用服务两种类型分别配置开放策略,通过协同把策略在边缘生成配置文件或者在k3s中创建ingressroute的资源,通过服务网关实现服务开放,策略动态生效。
130.运维人员在云端控制台下发服务开放指令,通过云边协同通道以grpc协议发送指令数据包到边缘edgeserver。
131.边缘网关解析收到的指令信息包,解析出指令类型(服务开放类型)以及执行目标。
132.如果目标是虚机,通过模版生成服务开放配置文件,则以grpc协议发送文件到所有目标虚机列表的虚机代理edgeagent。边缘虚机代理edgeagent把文件传到traefik proxy的自动发现目录下(即traefik providers file)。
133.如果目标是容器,则调用容器管理控制api接口直接在k3s中创建ingressroute的资源,通过为ingressroute指定不同的label来确定哪个traefik proxy来进行请求负载,灰度发布也会基于traefik proxy来进行。
134.图7为本技术实施例提供了一种边缘计算中云边协同应用管理装置的结构框图,如图7所示,该装置700可以包括:应用管理指令下发模块701、应用管理指令类型确定模块702以及应用部署模块703,其中:
135.应用管理指令下发模块701用于通过中心云确定应用管理对应的目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的应用实例数量,并向边缘云发送携带有目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的虚机实例数量的应用管理指令;
136.应用管理指令类型确定模块702用于通过边缘云解析应用管理指令,获取目标边缘虚机列表、目标容器集群api server组件地址和应用管理指令类型;
137.应用部署模块703用于若应用管理指令的类型为应用部署指令,则通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例。
138.本技术实施例提供的方案,通过中心云确定出应用管理对应的目标容器集群api server组件地址、目标边缘虚机列表以及各边缘虚机中对应的虚机实例数量,并将确定出的这些信息发送至边缘云,边缘云进行解析后,根据应用管理类型进行相应的应用管理,在需要进行应用部署时,通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例,即完成了应用部署。该方案,通过云端统一确定应用管理相关信息后,再通过边缘端统一执行,无需根据边缘节点的计算资源类型单独进行应用管理,即统一了不同计算类型的应用管理,大大提高了运维效率,降低了运维成本。
139.在本技术的一种可选实施例中,应用管理指令下发模块具体用于:
140.在进行应用部署时,通过中心云获取应用部署配置信息和各边云虚机资源情况;
141.基于应用配置信息确定容器实例数量、虚机实例数量、以及每一虚机实例所需的cpu数量和内存数量;基于各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量;
142.基于虚机实例数量、每一虚机实例所需的cpu数量和内存数量、以及各边缘虚机资源情况获取对应的可用cpu数量、可用内存数量、以及所支持的最大虚机实例数量,确定目标边缘虚机列表以及各目标边缘虚机对应的应用实例数量,基于容器实例数量,确定目标容器集群api server组件地址。
143.在本技术的一种可选实施例中,应用管理指令下发模块进一步用于:
144.将各边缘虚机中可用cpu数量、可用内存数量分别不小于每一虚机实例所需的cpu数量和内存数量的边缘虚机,确定为待选目标边缘虚机;
145.若确定出的待选目标边缘虚机的数量不小于虚机实例数量,则从确定出的待选目标边缘虚机中随机选取与虚机实例数量对应数量的待选目标边缘虚机,将选取出的待选目标边缘虚机确定为目标边缘虚机列表中的目标边缘虚机,且各目标边缘虚机对应的应用实例数量为1;
146.若确定出的待选目标边缘虚机的数量小于虚机实例数量,则将确定出的待选目标边缘虚机都确定为目标边缘虚机列表中的目标边缘虚机,并基于各待选目标边缘虚机所支持的最大虚机实例数量的比值分配对应的应用实例数量。
147.在本技术的一种可选实施例中,应用部署模块具体用于:
148.通过边缘云调用容器集群api server组件接口,并通过容器集群api server组件接口从边缘软件资产库中拉取容器实例对应的软件镜像包,并将软件镜像包安装至目标容器集群api server组件地址对应的目标容器集群;
149.通过边缘云调用各目标边缘虚机的边缘代理,并通过边缘代理从边缘软件资产库中拉取虚机实例对应的软件包,并将软件包安装至对应的目标边缘虚机。
150.在本技术的一种可选实施例中,应用部署模块进一步用于:
151.若通过容器集群接口从边缘软件资产库中没有拉取容器实例对应的软件镜像包,和/或,通过边缘代理从边缘软件资产库中没有拉取虚机实例对应的软件包,则通过边缘软件资产库从中心云中获取容器实例对应的软件镜像包和/或虚机实例对应的软件包。
152.在本技术的一种可选实施例中,该装置还包括应用生命周期管理模块,用于:
153.若应用管理指令的类型为应用生命周期管理指令,则通过边缘云调用容器集群接口和各目标边缘虚机的边缘代理,并通过容器集群接口对各目标容器中的容器实例执行应用生命周期管理指令,通过各边缘代理对各目标虚机中的虚机实例执行应用生命周期管理指令。
154.在本技术的一种可选实施例中,该装置还包括应用服务开放模块,用于:
155.若应用管理指令的类型为应用服务开放指令,则通过边缘云调用容器集群接口和各目标边缘虚机的边缘代理,并通过容器集群接口基于反向代理traefik proxy对各目标容器中的容器实例执行应用服务开放指令,通过各边缘代理基于反向代理traefik proxy对各目标虚机中的虚机实例执行应用服务开放指令。
156.下面参考图8,其示出了适于用来实现本技术实施例的电子设备(例如执行图2所示方法的终端设备或服务器)800的结构示意图。本技术实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴设备等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图8示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
157.电子设备包括:存储器以及处理器,存储器用于存储执行上述各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。其中,这里的处理器可以称为下文所述的处理装置801,存储器可以包括下文中的只读存储器(rom)802、随机访问存储器(ram)803以及存储装置808中的至少一项,具体如下所示:
158.如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储装置808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、rom 802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
159.通常,以下装置可以连接至i/o接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄
server组件地址和应用管理指令类型;若应用管理指令的类型为应用部署指令,则通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例。
166.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
167.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
168.描述于本技术实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一程序切换模块还可以被描述为“切换第一程序的模块”。
169.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
170.在本技术的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
171.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的计算机可读介质被电子设备执行时实现的具体方法,可以参考前述方法实施例中的对应过程,在此不再赘述。
172.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计
算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
173.通过中心云确定应用管理对应的目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的应用实例数量,并向边缘云发送携带有目标边缘虚机列表、目标容器集群api server组件地址、以及各目标边缘虚机对应的虚机实例数量的应用管理指令;通过边缘云解析应用管理指令,获取目标边缘虚机列表、目标容器集群api server组件地址和应用管理指令类型;若应用管理指令的类型为应用部署指令,则通过边缘云基于目标容器集群api server组件地址创建对应的应用实例,基于目标虚机列表和各目标边缘虚机对应的虚机实例数量创建对应的应用实例。
174.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
175.以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献