Git Product home page Git Product logo

fabedge's Introduction

What is FabEdge

FabEdge is an open source edge networking solution based on kubernetes and kubeedge. It solves the problems including complex network configuration management, network fragmentation, the lack of service discovery ability and topology awareness in edge etc.

Fabedge supports weak network environments, such as 4/5G, WiFi,LoRa, etc., and supports dynamic IP addresses of edge nodes, which is suitable for scenarios such as the Internet of Things and the Internet of Vehicles.

Features

  • Kubernetes Native Support: Fully compatible with Kubernetes API, without any modification, applications can communicate with each others seamlessly no mater in cloud or edge.

  • Edge Container Network Management:Management of the subnets allocation and ip address assignment for edge containers.

  • Cloud-Edge/Edge-Edge Collaboration: Secure tunnels between cloud and edge nodes for synergy between cloud and edge.

  • Edge Community Control: Use K8S CRD of “community” to control which edge nodes can communicate with each others.

  • Topology-aware service: Improve service latency by giving higher priority to local endpoints, while still able to access endpoints in remote cloud.

Advantages

  • Standard: fully compatible with k8s api, support any k8s cluster, plug and plan.

  • Secure: all communication over secure IPSEC tunnel using certificate.

  • Easy to use: designed using operator pattern , minimized ongoing operation effort.

How it works

  • The cloud is any standard Kubernete cluster with any CNI network plug-in, such as Calico. Run cloudcore, the Kubeedge cloud side component, in the cloud and edgecore, the edge side component on the edge node, which registers the edge node to the cloud cluster.

  • Fabedge consists of three components: Operators, Connector and Agent

image

  • FabEdge uses two channels for cloud-edge data exchange. One is the websock channel managed by kubeedge for control signals; the other is an secure tunnel managed by FabEdge itself for application data exchange.

  • Operator monitors k8s resources such as node, service, and endpoint in the cloud, and creates a configmap for each edge node, which contains the configuration information such as the subnet, tunnel, and load balancing rules. The operator is also responsible to launch the agent pod for each edge node.

  • The Connector is responsible to terminate the tunnel from edge nodes, and relay traffic between the cloud and the edge nodes. It relays on a cloud CNI plug-in to forward traffic to nodes other than the connectors. It supports callico so far.

  • The edge node uses the k8s community CNI plug-in bridge and host-local.

  • The edge node uses the k8s community node-local-dns feature, which is responsible for the domain name resolution and caching on the local node.

  • Each edge node runs an agent and consumes its own configmap including the following functions:

    • Manage the configuration file of the CNI plug-in of this node
    • Manage the security tunnel of this node
    • Manage the load balancing rules of this node, the local backend will be used first, followed by the cloud’s

FabEdge vs Calico/Flannel

Fabedge is different from generic Kubernetes network plug-ins such as Calico/Flannel. These plug-ins are used in the data centers to solve the internal network problems of the kubernetes cluster. Fabedge solves the edge computing networing qutestions: how to communitcate between the PODs on different edge nodes, how to community between cloud and edge etc, after the edge node is connected to the cloud cluster using Kubeedge. Currently Fabedge can seamlessly integrate with Calico and will be extended to others in the near future.

Guides

Get start with this doc.

Contributing, Support, Discussion, and Community

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

· Please send email to [email protected]
· 社区微信交流群见官网底部

Please submit any FabEdge bugs, issues, and feature requests to FabEdge GitHub Issue.

License

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

fabedge's People

Contributors

bocloudofficial avatar

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.