前言

Kubeedge 官方文档地址: kubeedge docs

kubeedge 由华为主导开发的开源系统,用于将本地容器的编排功能扩展到边缘的节点/主机上去。

截至目前, kubeedge最新版本为 1.5。于 2020-12-16日发布的release KubeEdge v1.5.0 release

Kubeedge 有什么优势

① 边缘计算

将业务逻辑运算的运行放在边缘段,大量数据可以安全的保存在数据产生的边缘端,从而节省边缘数据上云的带宽占用。

② 简化开发

开发者可以开发习惯的基于HTTP或MQTT的应用,然后非常方便的进行容器化,运行在合适的云端或者边缘端。

③ 支持像原生k8s那样部署

kubeedge的使用方式和k8s非常相似,对于熟悉k8s的使用者来说,可以轻松切换。

④ 丰富的应用

通过kubeedge, 可以轻松的在边缘节点部署比如图像识别,机器学习等应用。

Kubeedge 架构?

从图中可以直接看到, kubeedge 分为两个部分,分别为:

    1. 云端的 CloudCore
    1. 边缘段 EdgeCore

1. CloudCore

  • EdgeController 组件

    扩展过的k8s控制器,可以管理边缘节点和pod元数据

  • DeviceContrller 模块

    管理设备

  • CloudHub 组件

    web socket服务器,用来监控云端变化,缓存消息并将消息发至EdgeHub(web Socket 客户端)

2. EdgeCore

  • EdgeHub 组件

    web socket服务器客户端,与云服务交互。将云端资源更新同步到Edge, 并向云报告边缘主机和设备状态的变化。

  • MetaManager 组件

    云端和边缘端的消息处理器。同时负责存储元数据至轻量级数据库(SQLite), 或者从之将数据恢复。

  • DeviceTwin 组件

    负责存储设备状态并将设备状态存储到云端。同时提供了查询接口。

  • Edged 组件

    运行在边缘端,管理容器化应用的代理,修改版的kubelet

  • EventBus 组件

    MQTT客户端,用于和MQTT服务器(mosquitto)交互。为其他组件提供了发布订阅得功能。

  • ServiceBus 模块

    运行在边缘端得HTTP客户端,接收来自云上服务得请求,与边缘端得HTTP服务器交互,提供了云上服务通过HTTP协议访问边缘端HTTP服务器得能力。

安装部署

kubeedge的安装部署依赖于以下前提, 所以部署kubeedge前需要准备:

  1. 云端

    • k8s集群
  2. 边缘端

    • MQTT服务器(可选)
    • 容器化, 比如docker, Containerd, Cri-o, Virtlet

1. 版本限制

Kubernetes 1.13Kubernetes 1.14Kubernetes 1.15Kubernetes 1.16Kubernetes 1.17Kubernetes 1.18Kubernetes 1.19
KubeEdge 1.3
KubeEdge 1.4
KubeEdge 1.5
KubeEdge HEAD (master)

2. 部署方案

方案1: Keadm安装

Keadm被设计为用来安装Kubeedge组件。

keadm 工具怎么得到?下载kubeedge源码, 然后编译(go build)keadm工具,之后就可以使用keadm安装了

使用Keadm需要超级用户(su) 或者root账户权限安装,目前支持Ubuntu和Centos。

① 云端
1
$ keadm init

keadm init 命令会安装 CloudCore, 生成证书及安装CRD。

② 边缘端
  • 云端生成token

    1
    $ keadm gentoken
  • 边缘端执行

    1
    $ keadm join  -- cloudcore-ipport=$ip$port --token=$token

    keadm join 会在边缘端安装 edgecoremqtt。(边缘端和云端的kubeedge 及keadm采用相同版本)

方案2: 二进制文件安装

Deploying KubeEdge with binary is used to test, never use this way in production environment

官网介绍说该方案只用于测试,不能用于生产环境。so pass