「连载」边缘计算(八)01-25:边缘部分源码(源码分析篇)

(接上篇)

本章首先搭建开发环境,然后安装相关工具,最后分析KubeEdge源码的整体结构、各源码目录的作用和各组件的源码入口和源码调用流程。

搭建开发环境

KubeEdge开发环境的搭建7.1节高度相似,详情见《深入理解边缘计算:云、边、端工作原理与源码分析》。

源码整体架构分析

KubeEdge中的组件及组件关系在5.1节已经具体讲述,这里不再赘述。本节首先针对各源码目录的作用和相互之间的关系进行梳理,然后分析各组件之间共用的框架和功能,最后分析组件中各模块之间共用的框架和功能。

8.2.1 源码目录及组件源码入口

KubeEdge源码目录如图8-2所示。

「连载」边缘计算(八)01-25:边缘部分源码(源码分析篇)_第1张图片

图8-2 KubeEdge源码目录结构

由图8-2可知,KubeEdge源码拥有build、cloud、common、docs、edge、edgemeshedgesite、hack、keadm、Mapper、pkg、staging、tests和vendor共14个目录。下面通过表8-1对它们的内容和作用进行详细说明。

表8-1 KubeEdge源码目录结构说明

目录名称

内容与作用

备注

build

部署KubeEdge项目所需的yaml文件和相关示例都在这个目录里。该目录下包括admission、cloud、crd-samples、crdscsidrivercsisamples、edge、edgesite和tools等子目录

cloud

KubeEdgeCloudCore组件的源码所在目录

common

KubeEdge项目中共用的源码文件,主要包括常量和类型

docs

该目录存放了KubeEdge的相关文档,包括KubeEdge的快速部署教程,KubeEdge的源码贡献教程,各功能模块的原理解析、说明和常见故障排除等

edge

KubeEdgeEdgeCore组件的源码所在目录

edgemesh

KubeEdge的边缘集群解决方案edgesite的源码所在目录

目前比较初级,适用的场景有限

edgesite

KubeEdge的网络解决方案edgemesh的源码所在目录

目前比较初级,适用的场景有限

hack

该目录存放了KubeEdge项目需要的所有shell脚本,这些脚本主要用来自动化安装依赖、校验环境和依赖、编译等

keadm

自动化安装KubeEdge的命令行工具,通过该命令行可以自动化安装docker、KubernetesKubeEdge的相关组件

Mapper

该目录存放了KubeEdge项目中与终端设备交互组件的源码

pkg

该目录存放了KubeEdge项目中不同组件之间共用的业务逻辑

staging

该目录存放了KubeEdge项目中用到的消息通信框架beehive的源码

tests

该目录存放了KubeEdge项目中测试相关的内容,包括端到端测试、性能测试和功能模拟测试等

vendor

该目录存放了KubeEdge项目中用到的源码依赖

在源码层面,KubeEdge核心独立组件包括CloudCoreEdgeCore、edge_mesh和edge_site,除此之外还有Mapper和keadm,具体如表8-2所示。

表 8-2 KubeEdge核心组件

组件名

组件功能

备注

CloudCore

Cloud部分各功能模块的集合

EdgeCore

Edge部分各功能模块的集合

edgemesh

服务网格解决方案

源码目录中缺少makefile文件

edgesite

边缘独立集群解决方案

Mapper

物联网协议实现

本源码分析系列不涉及

keadm

KubeEdge的一键部署工具

目前支持unbuntu,本源码分析系列不涉及

以上组件中的CloudCoreEdgeCoreedgemeshedgesite具有类似的代码结构,具体如表8-3所示。

表 8-3 KubeEdge核心组件源码入口文件

组件名

代码目录

组件启动入口

CloudCore

KubeEdge/cloud

KubeEdge/cloud/CloudCore/CloudCore.go、KubeEdge/cloud/admission/admission.go、KubeEdge/cloud/csidriver/csidriver.go

EdgeCore

KubeEdge/edge

KubeEdge/edge/cmd/EdgeCore/EdgeCore.go

edgemesh

KubeEdge/edgemesh

KubeEdge/edgemesh/cmd/edgemesh.go

edgesite

KubeEdge/edgesite

KubeEdge/edgesite/cmd/edgesite.go

CloudCoreEdgeCoreedgemeshedgesite组件的源码中都使用了命令行框架cobra(https://GitHub.com/spf13/cobra) ,具体如下。

 「未完待续……

点击下方标题可阅读技术文章

「连载」边缘计算(一)01-16:边缘计算系统逻辑架构(原理篇)
「连载」边缘计算(二)01-17:边缘计算系统逻辑架构(原理篇)
「连载」边缘计算(三)01-18:边缘部分原理解析(原理篇)
「连载」边缘计算(四)01-19:边缘部分原理解析(原理篇)
「连载」边缘计算(五)01-22:边缘部分原理解析(原理篇)

「连载」边缘计算(六)01-23:边缘部分原理解析(原理篇)

「连载」边缘计算(七)01-24:边缘部分原理解析(原理篇)

你可能感兴趣的:(边缘计算,数据库,大数据)