kubeedge

Kubernetes Native Edge Computing Framework (project under CNCF)

Github星跟蹤圖

KubeEdge

Build Status
Go Report Card
LICENSE
Releases
Documentation Status

KubeEdge is an open source system extending native containerized application orchestration and device management to hosts at the Edge. It is built upon Kubernetes and provides core infrastructure support for networking, application deployment and metadata synchronization between cloud and edge. It also supports MQTT and allows developers to author custom logic and enable resource constrained device communication at the Edge. KubeEdge consists of a cloud part and an edge part.

Advantages

Edge Computing

With business logic running at the Edge, much larger volumes of data can be secured & processed locally where the data is produced. Edge nodes can run autonomously which effectively reduces the network bandwidth requirements and consumptions between Edge and Cloud. With data processed at the Edge, the responsiveness is increased dramatically and data privacy is protected.

Simplified development

Developers can write regular http or mqtt based applications, containerize them, and run them anywhere - either at the Edge or in the Cloud - whichever is more appropriate.

Kubernetes-native support

With KubeEdge, users can orchestrate apps, manage devices and monitor app and device status on Edge nodes just like a traditional Kubernetes cluster in the Cloud. Locations of edge nodes are transparent to customers.

Abundant applications

It is easy to get and deploy existing complicated machine learning, image recognition, event processing and other high level applications to the Edge.

Introduction

KubeEdge is composed of the following components:

Cloud Part

  • CloudHub: a web socket server responsible for watching changes at the cloud side, caching and sending messages to EdgeHub.
  • EdgeController: an extended kubernetes controller which manages edge nodes and pods metadata so that the data can be targeted to a specific edge node.
  • DeviceController: an extended kubernetes controller which manages devices so that the device metadata/status data can be synced between edge and cloud.

Edge Part

  • EdgeHub: a web socket client responsible for interacting with Cloud Service for the edge computing (like Edge Controller as in the KubeEdge Architecture). This includes syncing cloud-side resource updates to the edge, and reporting edge-side host and device status changes to the cloud.
  • Edged: an agent that runs on edge nodes and manages containerized applications.
  • EventBus: a MQTT client to interact with MQTT servers (mosquitto), offering publish and subscribe capabilities to other components.
  • ServiceBus: a HTTP client to interact with HTTP servers (REST), offering HTTP client capabilities to components of cloud to reach HTTP servers running at edge.
  • DeviceTwin: responsible for storing device status and syncing device status to the cloud. It also provides query interfaces for applications.
  • MetaManager: the message processor between edged and edgehub. It is also responsible for storing/retrieving metadata to/from a lightweight database (SQLite).

Architecture

Compatibility matrix

Kubernetes compatibility, Kubernetes 1.11, Kubernetes 1.12, Kubernetes 1.13, Kubernetes 1.14, Kubernetes 1.15, Kubernetes 1.16, Kubernetes 1.17, ------------------------, -----------------, -----------------, -----------------, -----------------, -----------------, -----------------, -----------------, KubeEdge 1.0, ✓, ✓, ✓, ✓, ✓, -, -, KubeEdge 1.1, ✓, ✓, ✓, ✓, ✓, ✓, ✓, KubeEdge 1.2, ✓, ✓, ✓, ✓, ✓, ✓, ✓, KubeEdge HEAD (master), ✓, ✓, ✓, ✓, ✓, ✓, ✓, Key:

  • KubeEdge and the Kubernetes version are exactly compatible.
  • + KubeEdge has features or API objects that may not be present in the Kubernetes version.
  • - The Kubernetes version has features or API objects that KubeEdge can't use.

Golang dependency, Golang 1.10, Golang 1.11, Golang 1.12, Golang 1.13, -------------------------, ----------------, -----------------, -----------------, -----------------, KubeEdge 1.0, ✓, ✓, ✓, ✗, KubeEdge 1.1, ✗, ✗, ✓, ✗, KubeEdge 1.2, ✗, ✗, ✓, ✓, KubeEdge HEAD (master), ✗, ✗, ✓, ✓, ## To start developing KubeEdge

The set up hosts all information about building KubeEdge from source, how to setup. etc.

To build KubeEdge from source there is one option:

You have a working Go environment.
mkdir -p $GOPATH/src/github.com/kubeedge
cd $GOPATH/src/github.com/kubeedge
git clone git@github.com:kubeedge/kubeedge.git
# If you only want to compile quickly without using go mod, please set GO111MODULE=off (e.g. export GO111MODULE=off) 
cd kubeedge 
make

Usage

Roadmap

Meeting

Regular Community Meeting: Wednesday at 16:30 Beijing Time (biweekly).

Documentation

The detailed documentation for KubeEdge and its modules can be found at https://docs.kubeedge.io.
Some sample applications and demos to illustrate possible use cases of KubeEdge platform can be found at this examples repository.

Contact

If you have questions, feel free to reach out to us in the following ways:

Contributing

If you're interested in being a contributor and want to get involved in
developing the KubeEdge code, please see CONTRIBUTING for
details on submitting patches and the contribution workflow.

License

KubeEdge is under the Apache 2.0 license. See the LICENSE file for details.

主要指標

概覽
名稱與所有者kubeedge/kubeedge
主編程語言Go
編程語言Makefile (語言數: 5)
平台
許可證Apache License 2.0
所有者活动
創建於2018-09-28 08:57:49
推送於2025-04-22 06:59:31
最后一次提交2025-04-22 14:59:31
發布數106
最新版本名稱v1.20.0 (發布於 )
第一版名稱v0.1 (發布於 )
用户参与
星數7k
關注者數180
派生數1.7k
提交數5.9k
已啟用問題?
問題數2327
打開的問題數653
拉請求數2807
打開的拉請求數194
關閉的拉請求數864
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?