KubeEdge 是一个开源的系统,可将本机容器化应用编排和管理扩展到边缘端设备。 它基于Kubernetes构建,为网络和应用程序提供核心基础架构支持,并在云端和边缘端部署应用,同步元数据。 KubeEdge 还支持 MQTT 协议,允许开发人员编写客户逻辑,并在边缘端启用设备通信的资源约束。
通过在边缘端运行业务逻辑,可以在本地保护和处理大量数据。KubeEdge 减少了边和云之间的带宽请求,加快响应速度,并保护客户数据隐私。
开发人员可以编写常规的基于http或mqtt的应用程序,容器化并在边缘或云端任何地方运行。
使用 KubeEdge 用户可以在边缘节点上编排应用、管理设备并监控应用程序/设备状态,就如同在云端操作 Kubernetes 集群一样。
用户可以轻松地将复杂的机器学习、图像识别、事件处理等高层应用程序部署到边缘端。
KubeEdge 由以下组件构成:
- Edged: Edged 是运行在边缘节点的代理,用于管理用户应用程序。
- EdgeHub: EdgeHub 是一个 Web Socket 客户端,负责与华为云 IEF服务交互,包括同步云端资源更新、报告边缘主机和设备状态变化等功能。
- EventBus: EventBus 是一个与 MQTT 服务器(mosquitto)交互的 MQTT 客户端,为其他组件提供订阅和发布功能。
- DeviceTwin: DeviceTwin 负责存储设备状态并将设备状态同步到云,它还为应用程序提供查询接口。
- MetaManager: MetaManager 是消息处理器,位于 Edged 和 Edgehub 之间,它负责向轻量级数据库(SQLite)存储/检索元数据。
KubeEdge将为 IoT / Edge 工作负载提供基础架构和基本功能。其中包括:
- 使用 K8s 通过 kubectl 从云端向边缘节点部署应用
- 使用 K8s ConfigMap和Secret 通过 kubectl 从云端对边缘节点和 Pod 中的应用进行配置管理和密钥管理。
- 云和边缘节点之间的双向和多路网络通信
- K8s Pod 和 Node 状态通过云端 kubectl 查询,从边缘端收集/报告数据
- 边缘节点在脱机时自动恢复,并重新连接云端
- 支持IoT设备通过Device twin 和 MQTT 协议与边缘节点通信
- 使用 KubeEdge 和 Istio 构建服务网格
- 在边缘端提供函数即服务(Function as a Service,FaaS)
- 在边缘端节点支持更多类型的设备协议,如 AMQP、BlueTooth、ZigBee 等等
- 评估并启用具有数千个边缘节点和数百万设备的超大规模边缘集群
- 启用应用的智能调度,扩大边缘节点的规模
- ……
使用 KubeEdge 确保环境中已经安装了 mosquitto(作为 MQTT 代理) 和 docker 。如果没有,请参考下面的步骤安装 docker 和 mosquitto。
Ubuntu系统:
# Install Docker from Ubuntu's repositories:
apt-get update
apt-get install -y docker.io
# or install Docker CE 18.06 from Docker's repositories for Ubuntu or Debian:
apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update && apt-get install docker-ce=18.06.0~ce~3-0~ubuntu
CentOS系统:
# Install Docker from CentOS/RHEL repository:
yum install -y docker
# or install Docker CE 18.06 from Docker's CentOS repositories:
yum install yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum update && yum install docker-ce-18.06.1.ce
Ubuntu系统:
apt install mosquitto
CentOS系统:
yum install mosquitto
参考 mosquitto official website 获得更多的信息。
克隆 kube-edge
git clone https://github.com/kubeedge/kubeedge.git $GOPATH/src/github.com/kubeedge/kubeedge
cd $GOPATH/src/github.com/kubeedge/kubeedge
make # or `make edge_core`
注意; HuaweiCloud IEF 目前只在中国地区可用。
- 在华为云创建一个账号
- 跳转到 IEF 并创建一个边缘节点
- 下载节点配置文件(<node_name>.tar.gz)
- 运行
bash -x hack/setup_for_IEF.sh /PATH/TO/<node_name>.tar.gz
修改conf/
文件夹下的配置文件
# run mosquitto
mosquitto -d -p 1883
# run edge_core
# `conf/` should be in the same directory as the binary
./edge_core
# or
nohup ./edge_core > edge_core.log 2>&1 &
如果您使用华为云 IEF, 那么您创建的边缘节点应该正在运行(可在IEF控制台页面中查看)。
Slack channel:
kubeedge.slack.com
用户可以通过单击邀请链接 link 加入此频道。
通过该链接 link 可用找到有关 KubeEdge 的各个模块的详细信息。
如果您需要支持,请从 [故障排除指南] 开始,然后按照我们概述的流程进行操作。
如果您有任何疑问,请与我们联系。
您可以随时与这些人联系:
- @m1093782566
- @islinwb
- @Lion-Wei