superedge

module
v0.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2022 License: Apache-2.0, BSD-2-Clause, BSD-3-Clause, + 2 more

README

English | 简体中文

SuperEdge

What is SuperEdge?

SuperEdge is an open source container management system for edge computing to manage compute resources and container applications in multiple edge regions. These resources and applications, in the current approach, are managed as one single Kubernetes cluster. A native Kubernetes cluster can be easily converted to a SuperEdge cluster.

SuperEdge has the following characteristics:

  • Kubernetes-native: SuperEdge extends the powerful container orchestration and scheduling capabilities of Kubernetes to the edge. It makes nonintrusive enhancements to Kubernetes and is fully compatible with all Kubernetes APIs and resources. Kubernetes users can leverage SuperEdge easily for edge environments with minimal learning.
  • Edge autonomy: SuperEdge provides L3 edge autonomy. When the network connection between the edge and the cloud is unstable, or the edge node is offline, the node can still work independently. This eliminates the negative impact of unreliable network.
  • Distributed node health monitoring: SuperEdge provides edge-side health monitoring capabilities. SuperEdge can continue to monitor the processes on the edge side and collect health information for faster and more accurate problem discovery and reporting. In addition, its distributed design can provide multi-region monitoring and management.
  • Built-in edge orchestration capability: SuperEdge supports automatic deployment of multi-regional microservices. Edge-side services are closed-looped, and it effectively reduces the operational overhead and improves the fault tolerance and availability of the system.
  • Network tunneling: SuperEdge ensures that Kubernetes nodes can operate under different network situations. It supports network tunnelling using TCP, HTTP, HTTPS and SSH.

SuperEdge was initiated by the following companies: Tencent, Intel, VMware, Huya, Cambricon, Captialonline and Meituan.

Architecture

Cloud components:
  • tunnel-cloud: Maintains a persistent network connection to tunnel-edge services. Supports TCP/HTTP/HTTPS network proxies.
  • application-grid controller: A Kubernetes CRD controller as part of ServiceGroup. It manages DeploymentGrids, StatefulSetGrids and ServiceGrids CRDs and control applications and network traffic on edge worker nodes.
  • edge-health admission: Assists Kubernetes controllers by providing real-time health check status from edge-health services distributed on all edge worker nodes.
Edge components:
  • lite-apiserver: Lightweight kube-apiserver for edge autonomy. It caches and proxies edge components' requests and critical events to cloud kube-apiserver.
  • edge-health: Monitors the health status of edge nodes in the same edge region.
  • tunnel-edge: Maintains persistent connection to tunnel-cloud to retrieve API requests to the controllers on the edge.
  • application-grid wrapper: Managed by application-grid controller to provide independent internal network space for services within the same ServiceGrid.

Quickstart Guide

One-click install of edge Kubernetes cluster

  • Download the installation package

Choose installation package according to your installation node CPU architecture [amd64, arm64]

arch=amd64 version=v0.6.0 && rm -rf edgeadm-linux-* && wget https://superedge-1253687700.cos.ap-guangzhou.myqcloud.com/$version/$arch/edgeadm-linux-$arch-$version.tgz && tar -xzvf edgeadm-linux-* && cd edgeadm-linux-$arch-$version && ./edgeadm
  • Install edge Kubernetes master node
./edgeadm init --kubernetes-version=1.18.2 --image-repository superedge.tencentcloudcr.com/superedge --service-cidr=10.96.0.0/12 --pod-network-cidr=192.168.0.0/16 --install-pkg-path ./kube-linux-*.tar.gz --apiserver-cert-extra-sans=<Master Public IP> --apiserver-advertise-address=<Master Intranet IP> --enable-edge=true
  • Join edge node
./edgeadm join <Master Public/Intranet IP Or Domain>:Port --token xxxx --discovery-token-ca-cert-hash sha256:xxxxxxxxxx --install-pkg-path <edgeadm kube-* install package address path> --enable-edge=true

See the detailed processOne-click install of edge Kubernetes cluster

Other installation, deployment, and administration, see our Tutorial.

More details

Contact

For any question or support, feel free to contact us via:

Contributing

Welcome to contribute and improve SuperEdge

Troubleshooting and Feedback

If you encounter any failure in the process of using SuperEdge, you can use Contact Contact us, or give us feedback via Troubleshooting and Feedback.

License

Apache License 2.0

Directories

Path Synopsis
This package imports things required by build scripts, to force `go mod` to see them as dependencies
This package imports things required by build scripts, to force `go mod` to see them as dependencies
cmd
lite-apiserver/app/options
Package options contains all the primary arguments for a kubelet.
Package options contains all the primary arguments for a kubelet.
examples
Tars/testapp/testapp
Package testapp comment This file was generated by tars2go 1.1.4 Generated from Hello.tars Package testapp comment This file was generated by tars2go 1.1.4 Generated from Hello.tars
Package testapp comment This file was generated by tars2go 1.1.4 Generated from Hello.tars Package testapp comment This file was generated by tars2go 1.1.4 Generated from Hello.tars
pkg
application-grid-controller/apis/superedge.io/v1
+k8s:deepcopy-gen=package +groupName=superedge.io +k8s:deepcopy-gen=package +groupName=superedge.io
+k8s:deepcopy-gen=package +groupName=superedge.io +k8s:deepcopy-gen=package +groupName=superedge.io
application-grid-controller/generated/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
application-grid-controller/generated/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
application-grid-controller/generated/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
application-grid-controller/generated/clientset/versioned/typed/superedge.io/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
application-grid-controller/generated/clientset/versioned/typed/superedge.io/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
lite-apiserver/options
Package options contains all of the primary arguments for a kubelet.
Package options contains all of the primary arguments for a kubelet.
penetrator/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
penetrator/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
penetrator/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
penetrator/client/clientset/versioned/typed/nodetask.apps.superedge.io/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
penetrator/client/clientset/versioned/typed/nodetask.apps.superedge.io/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
site-manager/apis/site.superedge.io/v1alpha1
+k8s:deepcopy-gen=package +groupName=site.superedge.io Package v1alpha1 contains API Schema definitions for the site.superedge.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=site.superedge.io +k8s:deepcopy-gen=package +groupName=superedge.io
+k8s:deepcopy-gen=package +groupName=site.superedge.io Package v1alpha1 contains API Schema definitions for the site.superedge.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=site.superedge.io +k8s:deepcopy-gen=package +groupName=superedge.io
site-manager/generated/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
site-manager/generated/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
site-manager/generated/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
site-manager/generated/clientset/versioned/typed/site.superedge.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
site-manager/generated/clientset/versioned/typed/site.superedge.io/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL