Getting Started
Dependencies
KubeEdge Dependenciesopen in new window
KubeEdge >= v1.7.0open in new window
TIP
EdgeMesh isn't really depending on KubeEdge, it interacts with standard Kubernetes APIs only
Regarding the fact that edge nodes may be isolated in different edge network, we are benefiting from Edge Kube-API Endpoint feature to simplify the setup
Prerequisites
- Step 1: Remove the taint of the K8s master nodes
 
$ kubectl taint nodes --all node-role.kubernetes.io/master-
If the application that needs to be proxied is not deployed on the K8s master nodes, the above steps can be omitted.
- Step 2: Add filter labels to Kubernetes API services
 
$ kubectl label services kubernetes service.edgemesh.kubeedge.io/service-proxy-name=""
Normally you don't want EdgeMesh to proxy the Kubernetes API service, so you need to add a filter label to it. For more information, please refer to Service Filter.
- Step 3: Enable KubeEdge's Edge Kube-API Endpoint Service
 
Please refer to the documentation Edge Kube-API Endpoint to enable this service.
Install
We provide two ways to install EdgeMesh, you can choose one to deploy EdgeMesh according to your own situation.
Helm Install
- Step 1: Install Charts
 
Make sure you have installed Helm 3, then refer to: Helm Deployment EdgeMesh Guideopen in new window
- Step 2: Check it out
 
$ helm ls -A
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
edgemesh        kubeedge        1               2022-09-18 12:21:47.097801805 +0800 CST deployed        edgemesh-0.1.0  latest
$ kubectl get all -n kubeedge -o wide
NAME                       READY   STATUS    RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
pod/edgemesh-agent-7gf7g   1/1     Running   0          39s   192.168.0.71    k8s-node1    <none>           <none>
pod/edgemesh-agent-fwf86   1/1     Running   0          39s   192.168.0.229   k8s-master   <none>           <none>
pod/edgemesh-agent-twm6m   1/1     Running   0          39s   192.168.5.121   ke-edge2     <none>           <none>
pod/edgemesh-agent-xwxlp   1/1     Running   0          39s   192.168.5.187   ke-edge1     <none>           <none>
NAME                            DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE   CONTAINERS       IMAGES                           SELECTOR
daemonset.apps/edgemesh-agent   4         4         4       4            4           <none>          39s   edgemesh-agent   kubeedge/edgemesh-agent:latest   k8s-app=kubeedge,kubeedge=edgemesh-agent
2
3
4
5
6
7
8
9
10
11
12
13
Manual Install
- Step 1: Download EdgeMesh
 
$ git clone https://github.com/kubeedge/edgemesh.git
$ cd edgemesh
2
- Step 2: Create CRDs
 
$ kubectl apply -f build/crds/istio/
customresourcedefinition.apiextensions.k8s.io/destinationrules.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/gateways.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/virtualservices.networking.istio.io created
2
3
4
- Step 3: Deploy edgemesh-agent
 
$ kubectl apply -f build/agent/resources/
serviceaccount/edgemesh-agent created
clusterrole.rbac.authorization.k8s.io/edgemesh-agent created
clusterrolebinding.rbac.authorization.k8s.io/edgemesh-agent created
configmap/edgemesh-agent-cfg created
configmap/edgemesh-agent-psk created
daemonset.apps/edgemesh-agent created
2
3
4
5
6
7
TIP
Please set the relayNodes in build/agent/resources/04-configmap.yaml according to your K8s cluster and regenerate the PSK cipher.
- Step 4: Check it out
 
$ kubectl get all -n kubeedge -o wide
NAME                       READY   STATUS    RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
pod/edgemesh-agent-7gf7g   1/1     Running   0          39s   192.168.0.71    k8s-node1    <none>           <none>
pod/edgemesh-agent-fwf86   1/1     Running   0          39s   192.168.0.229   k8s-master   <none>           <none>
pod/edgemesh-agent-twm6m   1/1     Running   0          39s   192.168.5.121   ke-edge2     <none>           <none>
pod/edgemesh-agent-xwxlp   1/1     Running   0          39s   192.168.5.187   ke-edge1     <none>           <none>
NAME                            DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE   CONTAINERS       IMAGES                           SELECTOR
daemonset.apps/edgemesh-agent   4         4         4       4            4           <none>          39s   edgemesh-agent   kubeedge/edgemesh-agent:latest   k8s-app=kubeedge,kubeedge=edgemesh-agent
2
3
4
5
6
7
8
9