github.com/midokura/kubeedge@v1.2.0-mido.0/README.md (about)

     1  # KubeEdge
     2  [![Build Status](https://travis-ci.org/kubeedge/kubeedge.svg?branch=master)](https://travis-ci.org/kubeedge/kubeedge)
     3  [![Go Report Card](https://goreportcard.com/badge/github.com/kubeedge/kubeedge)](https://goreportcard.com/report/github.com/kubeedge/kubeedge)
     4  [![LICENSE](https://img.shields.io/github/license/kubeedge/kubeedge.svg?style=flat-square)](https://github.com/kubeedge/kubeedge/blob/master/LICENSE)
     5  [![Releases](https://img.shields.io/github/release/kubeedge/kubeedge/all.svg?style=flat-square)](https://github.com/kubeedge/kubeedge/releases)
     6  [![Documentation Status](https://readthedocs.org/projects/kubeedge/badge/?version=latest)](https://kubeedge.readthedocs.io/en/latest/?badge=latest)
     7  
     8  
     9  <img src="./docs/images/KubeEdge_logo.png">
    10  
    11  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.
    12  
    13  ## Advantages
    14  
    15  #### Edge Computing
    16  
    17  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.
    18  
    19  #### Simplified development
    20  
    21  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.
    22  
    23  #### Kubernetes-native support
    24  
    25  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.
    26  
    27  #### Abundant applications
    28  
    29  It is easy to get and deploy existing complicated machine learning, image recognition, event processing and other high level applications to the Edge.
    30  
    31  ## Introduction
    32  
    33  KubeEdge is composed of the following components:
    34  
    35  ### Cloud Part
    36  - [CloudHub](https://github.com/kubeedge/kubeedge/blob/master/docs/modules/cloud/cloudhub.md): a web socket server responsible for watching changes at the cloud side, caching and sending messages to EdgeHub.
    37  - [EdgeController](https://github.com/kubeedge/kubeedge/blob/master/docs/modules/cloud/controller.md): an extended kubernetes controller which manages edge nodes and pods metadata so that the data can be targeted to a specific edge node.
    38  - [DeviceController](https://github.com/kubeedge/kubeedge/blob/master/docs/modules/cloud/device_controller.md): an extended kubernetes controller which manages devices so that the device metadata/status data can be synced between edge and cloud.
    39  
    40  
    41  ### Edge Part
    42  - [EdgeHub](https://github.com/kubeedge/kubeedge/blob/master/docs/modules/edge/edgehub.md): 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.
    43  - [Edged](https://github.com/kubeedge/kubeedge/blob/master/docs/modules/edge/edged.md): an agent that runs on edge nodes and manages containerized applications.
    44  - [EventBus](https://github.com/kubeedge/kubeedge/blob/master/docs/modules/edge/eventbus.md): a MQTT client to interact with MQTT servers (mosquitto), offering publish and subscribe capabilities to other components.
    45  - 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.
    46  - [DeviceTwin](https://github.com/kubeedge/kubeedge/blob/master/docs/modules/edge/devicetwin.md): responsible for storing device status and syncing device status to the cloud. It also provides query interfaces for applications.
    47  - [MetaManager](https://github.com/kubeedge/kubeedge/blob/master/docs/modules/edge/metamanager.md): the message processor between edged and edgehub. It is also responsible for storing/retrieving metadata to/from a lightweight database (SQLite). 
    48  
    49  
    50  ### Architecture
    51  
    52  <img src="./docs/images/kubeedge_arch.png">
    53  
    54  ## Compatibility matrix
    55  
    56  ### Kubernetes compatibility
    57  
    58  |                        | Kubernetes 1.11 | Kubernetes 1.12 | Kubernetes 1.13 | Kubernetes 1.14 | Kubernetes 1.15 | Kubernetes 1.16 | Kubernetes 1.17 |
    59  |------------------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|
    60  | KubeEdge 1.0           | ✓               | ✓               | ✓               | ✓              | ✓               | -               | -               |
    61  | KubeEdge 1.1           | ✓               | ✓               | ✓               | ✓               | ✓             | ✓               | ✓               |
    62  | KubeEdge 1.2           | ✓               | ✓               | ✓               | ✓               | ✓             | ✓               | ✓               |
    63  | KubeEdge HEAD (master) | ✓               | ✓               | ✓               | ✓               | ✓             | ✓               | ✓               |
    64  
    65  Key:
    66  * `✓` KubeEdge and the Kubernetes version are exactly compatible.
    67  * `+` KubeEdge has features or API objects that may not be present in the Kubernetes version.
    68  * `-` The Kubernetes version has features or API objects that KubeEdge can't use.
    69  
    70  ### Golang dependency
    71  
    72  |                         | Golang 1.10    | Golang 1.11     | Golang 1.12     | Golang 1.13     |
    73  |-------------------------|----------------|-----------------|-----------------|-----------------|
    74  | KubeEdge 1.0            | ✓              | ✓               | ✓               | ✗               |
    75  | KubeEdge 1.1            | ✗              | ✗               | ✓               | ✗               |
    76  | KubeEdge 1.2            | ✗              | ✗               | ✓               | ✓               |
    77  | KubeEdge HEAD (master)  | ✗              | ✗               | ✓               | ✓               |
    78  
    79  ## To start developing KubeEdge
    80  
    81  The [set up] hosts all information about building KubeEdge from source, how to setup. etc.
    82  
    83  To build KubeEdge from source there is one option:
    84  
    85  ##### You have a working [Go environment].
    86  
    87  ```
    88  mkdir -p $GOPATH/src/github.com/kubeedge
    89  cd $GOPATH/src/github.com/kubeedge
    90  git clone git@github.com:kubeedge/kubeedge.git
    91  # If you only want to compile quickly without using go mod, please set GO111MODULE=off (e.g. export GO111MODULE=off) 
    92  cd kubeedge 
    93  make
    94  ```
    95  
    96  ## Usage
    97  
    98  * [One click KubeEdge Installer to install both Cloud and Edge nodes](./docs/setup/installer_setup.md)
    99  * [Run KubeEdge from release package](./docs/getting-started/release_package.md)
   100  * [Run KubeEdge from source](./docs/setup/setup.md)
   101  * [Deploy Application](./docs/setup/setup.md#deploy-application-on-cloud-side)
   102  * [Run Tests](./docs/setup/setup.md#run-tests)
   103  
   104  ## Roadmap
   105  
   106  * [2019 Q4 Roadmap](./docs/getting-started/roadmap.md#2019-q4-roadmap)
   107  
   108  ## Meeting
   109  
   110  Regular Community Meeting: Wednesday at 16:30 Beijing Time (biweekly).
   111  
   112  - [Meeting notes and agenda](https://docs.google.com/document/d/1Sr5QS_Z04uPfRbA7PrXr3aPwCRpx7EtsyHq7mp6CnHs/edit)
   113  - [Meeting recordings](https://www.youtube.com/playlist?list=PLQtlO1kVWGXkRGkjSrLGEPJODoPb8s5FM)
   114  - [Meeting link](https://zoom.us/j/4167237304)
   115  
   116  ## Documentation
   117  
   118  The detailed documentation for KubeEdge and its modules can be found at [https://docs.kubeedge.io](https://docs.kubeedge.io). 
   119  Some sample applications and demos to illustrate possible use cases of KubeEdge platform can be found at this [examples](https://github.com/kubeedge/examples) repository.
   120  
   121  ## Contact
   122  
   123  <!--
   124  We don't have a troubleshooting guide yet.  When we do, uncomment the following and add the link.
   125  If you need support, start with the [troubleshooting guide], and work your way through the process that we've outlined.
   126  
   127  --> 
   128  If you have questions, feel free to reach out to us in the following ways:
   129  
   130  - [mailing list](https://groups.google.com/forum/#!forum/kubeedge)
   131  - [slack](https://join.slack.com/t/kubeedge/shared_invite/enQtNjc0MTg2NTg2MTk0LWJmOTBmOGRkZWNhMTVkNGU1ZjkwNDY4MTY4YTAwNDAyMjRkMjdlMjIzYmMxODY1NGZjYzc4MWM5YmIxZjU1ZDI)
   132  - [twitter](https://twitter.com/kubeedge)
   133  
   134  ## Contributing
   135  
   136  If you're interested in being a contributor and want to get involved in
   137  developing the KubeEdge code, please see [CONTRIBUTING](CONTRIBUTING.md) for
   138  details on submitting patches and the contribution workflow.
   139  
   140  ## License
   141  
   142  KubeEdge is under the Apache 2.0 license. See the [LICENSE](LICENSE) file for details.
   143  
   144  [set up]: docs/setup/setup.md
   145  [Go environment]: https://golang.org/doc/install