GithubHelp home page GithubHelp logo

kubeedge / keink Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 11.0 93 KB

KubeEdge In Kind, easily spin up a KubeEdge cluster in just one machine.

License: Apache License 2.0

Makefile 1.57% Go 78.09% Shell 20.35%

keink's Introduction

KubeEdge

Go Report Card LICENSE Releases CII Best Practices

English | 简体中文

KubeEdge is built upon Kubernetes and extends native containerized application orchestration and device management to hosts at the Edge. It consists of cloud part and edge part, provides core infrastructure support for networking, application deployment and metadata synchronization between cloud and edge. It also supports MQTT which enables edge devices to access through edge nodes.

With KubeEdge it is easy to get and deploy existing complicated machine learning, image recognition, event processing and other high level applications to the Edge. With business logic running at the Edge, much larger volumes of data can be secured & processed locally where the data is produced. With data processed at the Edge, the responsiveness is increased dramatically and data privacy is protected.

KubeEdge is an incubation-level hosted project by the Cloud Native Computing Foundation (CNCF). KubeEdge incubation announcement by CNCF.

Advantages

  • Kubernetes-native support: Managing edge applications and edge devices in the cloud with fully compatible Kubernetes APIs.
  • Cloud-Edge Reliable Collaboration: Ensure reliable messages delivery without loss over unstable cloud-edge network.
  • Edge Autonomy: Ensure edge nodes run autonomously and the applications in edge run normally, when the cloud-edge network is unstable or edge is offline and restarted.
  • Edge Devices Management: Managing edge devices through Kubernetes native APIs implemented by CRD.
  • Extremely Lightweight Edge Agent: Extremely lightweight Edge Agent(EdgeCore) to run on resource constrained edge.

How It Works

KubeEdge consists of cloud part and edge part.

Architecture

In the Cloud

  • 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.

On the Edge

  • 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: an 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).

Kubernetes compatibility

Kubernetes 1.20 Kubernetes 1.21 Kubernetes 1.22 Kubernetes 1.23 Kubernetes 1.24 Kubernetes 1.25 Kubernetes 1.26 Kubernetes 1.27 Kubernetes 1.28 Kubernetes 1.29
KubeEdge 1.12 - - - - - - -
KubeEdge 1.13 + - - - - - -
KubeEdge 1.14 + + - - - - -
KubeEdge 1.15 + + + + - - -
KubeEdge 1.16 + + + + + - -
KubeEdge 1.17 + + + + + + -
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.

Guides

Get start with this doc.

See our documentation on kubeedge.io for more details.

To learn deeply about KubeEdge, try some examples on examples.

Roadmap

Meeting

Regular Community Meeting:

Resources:

Contact

If you need support, start with the troubleshooting guide, and work your way through the process that we've outlined.

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.

Security

Security Audit

A third party security audit of KubeEdge has been completed in July 2022. Additionally, the KubeEdge community completed an overall system security analysis of KubeEdge. The detailed reports are as follows.

Reporting security vulnerabilities

We encourage security researchers, industry organizations and users to proactively report suspected vulnerabilities to our security team ([email protected]), the team will help diagnose the severity of the issue and determine how to address the issue as soon as possible.

For further details please see Security Policy for our security process and how to report vulnerabilities.

License

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

keink's People

Contributors

fisherxu avatar gy95 avatar kevin-wangzefeng avatar shelley-baoyue avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

keink's Issues

Support installation of latest version KubeEdge and run demo on keink

What would you like to be added?

The keink now can install kubeedge v1.13, and we need to support the latest versions(include edgemesh) installation in keink.

In addition to deploying KubeEdge, we also provide developers with demos running on keink, so that developers can quickly use keink to run kubeedge, and then develop applications on KubeEdge

Kubeedge/node image does not exist or removed

What happened?

While pulling the "kubeedge/node:latest" image the command-prompt shows "ERROR: failed to create kubeedge cluster: failed to create k8s cluster: failed to pull image "kubeedge/node:latest": command "docker pull kubeedge/node:latest" failed with error: exit status 1"
poc

What did you expect to happen?

To download and create a kubeedge cluster

How can we reproduce it (as minimally and precisely as possible)?

by using the following command : keink create kubeedge --image kubeedge/node:latest

Anything else we need to know?

No response

What browsers are you seeing the problem on?

No response

KubeEdge Dashboard version

none

KubeEdge version

latest

Dev environment

No response

Create contributing guide for keink project

Currently, the keink project doesn't contain a contributing guide.

Expected Behaviour:

There should be contributing guide as per CNCF templates which can be followed to start local development of the project.

It can include sections like Signing Off Commits, Running in Local Dev Environment, etc.

No mqtt found on edge node

What happened?

I built a keink and created a cluster, everything seemed fine. But I found that there is no mqtt container in edge node.

root@kind-worker:/# ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 06:04 ?        00:00:00 /sbin/init
root         186       1  0 06:05 ?        00:00:00 /lib/systemd/systemd-journald
root         198       1  1 06:05 ?        00:01:20 /usr/local/bin/containerd
root         857       1  1 06:14 ?        00:01:01 /usr/local/bin/edgecore
root        1219       0  0 07:29 pts/1    00:00:00 sh
root        1276    1219  0 07:31 pts/1    00:00:00 bash
root        1440       1  0 07:48 ?        00:00:00 /usr/local/bin/containerd-shim-runc-v2 -namespace k8s.io -id 25d78eb62b27f8a110434dec1113ef666307a25c76c254fdc8e6
65535       1461    1440  0 07:48 ?        00:00:00 /pause
root        1482       1  0 07:48 ?        00:00:00 /usr/local/bin/containerd-shim-runc-v2 -namespace k8s.io -id 5bb3acaa39f8442ec7a562b7da01e5dc8de65252c9ee85564b76
65535       1503    1482  0 07:48 ?        00:00:00 /pause
root        1565    1440  0 07:48 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon off;
_apt        1599    1565  0 07:48 ?        00:00:00 nginx: worker process
root        1618    1482  0 07:48 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon off;
_apt        1649    1618  0 07:48 ?        00:00:00 nginx: worker process
root        1704    1276  0 07:51 pts/1    00:00:00 ps -ef

``
root@kind-worker:/# ctr -n k8s.io c ls
CONTAINER IMAGE RUNTIME
25d78eb62b27f8a110434dec1113ef666307a25c76c254fdc8e6fd6f868c945c k8s.gcr.io/pause:3.6 io.containerd.runc.v2
5bb3acaa39f8442ec7a562b7da01e5dc8de65252c9ee85564b76d10d4411d90a k8s.gcr.io/pause:3.6 io.containerd.runc.v2
94efcdb05929e5442cee998c543137960df4869428295f1ec08d563b21e7a969 docker.io/fabedge/net-tool:v0.1.0 io.containerd.runc.v2
acaf9af952eb9929c644f69c54b711761d88962981a6a49887e88f439f569277 docker.io/fabedge/net-tool:v0.1.0 io.containerd.runc.v2


kubectl get nodes -A
NAME STATUS ROLES AGE VERSION
kind-control-plane Ready control-plane,master 105m v1.23.4
kind-worker Ready agent,edge 96m v1.22.6-kubeedge-v1.12.2


### What did you expect to happen?

I think there should be a mqtt container on the edge node.

### How can we reproduce it (as minimally and precisely as possible)?

Create a cluster as stated in your REAME document, I choosed kubeedge version v1.12.2.

### Anything else we need to know?

_No response_

### What browsers are you seeing the problem on?

Chrome

### KubeEdge Dashboard version

v1.12.2

### KubeEdge version

v1.12.2

### Dev environment

go version
go version go1.17.13 linux/amd64

node --version
v16.18.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.