KubeSphere安装KubeEdge

1. kubesphere安装请参考博客

2. 配置master节点

在这里插入图片描述控制台->平台管理->集群管理->自定义CRD,搜索​​clusterconfiguration或者ClusterConfiguration​​,查看详情,在资源列表中,点击 ​​ks-installer​​ 右侧的图标,然后选择编辑配置文件。

在这里插入图片描述
在这里插入图片描述将​​kubeedge.enabled​​的​​false​​改为​​true​​

  edgeruntime:
    enabled: false
    kubeedge:
      cloudCore:
        cloudHub:
          advertiseAddress:
            - ''
        service:
          cloudhubHttpsNodePort: '30002'
          cloudhubNodePort: '30000'
          cloudhubQuicNodePort: '30001'
          cloudstreamNodePort: '30003'
          tunnelNodePort: '30004'
      enabled: true     #修改为true

在这里插入图片描述将​​kubeedge.cloudCore.cloudHub.advertiseAddress​​ 的值设置为集群的公共 IP 地址或边缘节点可以访问的 IP 地址。完成后,点击右下角的更新保存配置。
在这里插入图片描述

kubectl get pod -A  #查看全部运行正常就可以了

等待几分钟或者浏览器重新登录账号,最后不行重启服务器后就看到了如下的图片
在这里插入图片描述
查看 CloudCore 挂载的 ConfigMap 和 Secret,ConfigMap 主要挂载 cloudcore.yaml 配置文件到 /etc/kubeedge/config, 可灵活修改 CloudCore Modules 配置。Secret 挂载 CloudCore 和 EdgeCore 需要用到的一些 TLS 证书。
在这里插入图片描述

3. 添加边缘节点

3.1 对边缘节点的操作

#关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
#关闭swap:
swapoff -a # 临时
sed -i 's/.*swap.*/#&/' /etc/fstab # 永久
# 安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
yum -y install docker-ce-20.10.0-3.el7   #这里指定版本
# 生成docker配置文件
mkdir -p /etc/docker/
touch /etc/docker/daemon.json
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com", "https://rncxm540.mirror.aliyuncs.com"],
   "exec-opts": ["native.cgroupdriver=cgroupfs"]
}
EOF

# 启动docker
systemctl enable docker --now
systemctl start docker
systemctl status docker
docker --version
# 这里注意:cgroupdriver=cgroupfs。修改为systemd则会出现两者之间不一致的问题

3.2 进入 KubeSphere Console,导航到节点-> 边缘节点,添加边缘节点

在这里插入图片描述
填写边缘节点的名字和边缘节点的 IP,生成边缘节点配置命令,粘贴到边缘节点执行:

在这里插入图片描述

请注意
更能换端口,由于我们使用的 cloudcore 的服务是通过 NodePort 暴露出来的,所以在边缘节点注册 Cloudcore 时,需要使用 NodeIP:NodePort 形式,此处将 10000-10004 替换为 30000-30004 端口。

#一定要将 10000-10004 替换为 30000-30004 端口,负责不成功
arch=$(uname -m); if [[ $arch != x86_64 ]]; then arch='arm64'; fi;  curl -LO https://kubeedge.pek3b.qingstor.com/bin/v1.9.2/$arch/keadm-v1.9.2-linux-$arch.tar.gz  && tar xvf keadm-v1.9.2-linux-$arch.tar.gz && chmod +x keadm && ./keadm join --kubeedge-version=1.9.2 --region=zh --cloudcore-ipport=192.168.0.9:30000 --quicport 30001 --certport 30002 --tunnelport 30004 --edgenode-name edge02 --edgenode-ip 192.168.0.56 --token a768800af2883b5e9bab902260451ab0db252e2f8f63838e5fab85199510e8b0.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTgxMjcwNDh9.l5OZp1lUzbU9S82mAKj_Ze1pGIlNhSRq941gyWFyBTY --with-edge-taint
#这里记录安装的全过程
[root@ecs-42cb ~]# arch=$(uname -m); if [[ $arch != x86_64 ]]; then arch='arm64'; fi;  curl -LO https://kubeedge.pek3b.qingstor.com/bin/v1.9.2/$arch/keadm-v1.9.2-linux-$arch.tar.gz  && tar xvf keadm-v1.9.2-linux-$arch.tar.gz && chmod +x keadm && ./keadm join --kubeedge-version=1.9.2 --region=zh --cloudcore-ipport=192.168.0.9:30000 --quicport 30001 --certport 30002 --tunnelport 30004 --edgenode-name edge02 --edgenode-ip 192.168.0.56 --token a768800af2883b5e9bab902260451ab0db252e2f8f63838e5fab85199510e8b0.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTgxMjcwNDh9.l5OZp1lUzbU9S82mAKj_Ze1pGIlNhSRq941gyWFyBTY --with-edge-taint

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 36.0M  100 36.0M    0     0   989k      0  0:00:37  0:00:37 --:--:-- 1033k
./keadm
install MQTT service successfully.
kubeedge-v1.9.2-linux-amd64.tar.gz checksum: 
checksum_kubeedge-v1.9.2-linux-amd64.tar.gz.txt content: 
[Run as service] start to download service file for edgecore
[Run as service] success to download service file for edgecore
kubeedge-v1.9.2-linux-amd64/
kubeedge-v1.9.2-linux-amd64/edge/
kubeedge-v1.9.2-linux-amd64/edge/edgecore
kubeedge-v1.9.2-linux-amd64/version
kubeedge-v1.9.2-linux-amd64/cloud/
kubeedge-v1.9.2-linux-amd64/cloud/csidriver/
kubeedge-v1.9.2-linux-amd64/cloud/csidriver/csidriver
kubeedge-v1.9.2-linux-amd64/cloud/admission/
kubeedge-v1.9.2-linux-amd64/cloud/admission/admission
kubeedge-v1.9.2-linux-amd64/cloud/cloudcore/
kubeedge-v1.9.2-linux-amd64/cloud/cloudcore/cloudcore
kubeedge-v1.9.2-linux-amd64/cloud/iptablesmanager/
kubeedge-v1.9.2-linux-amd64/cloud/iptablesmanager/iptablesmanager

KubeEdge edgecore is running, For logs visit: journalctl -u edgecore.service -b
[root@ecs-42cb ~]# ps -ef|grep edgecore
root     21334     1  1 15:16 ?        00:00:00 /usr/local/bin/edgecore
root     21521  8861  0 15:17 pts/1    00:00:00 grep --color=auto edgecore
[root@ecs-42cb ~]# systemctl status edgecore
● edgecore.service
   Loaded: loaded (/etc/systemd/system/edgecore.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-10-23 15:16:40 CST; 3min 30s ago
 Main PID: 21334 (edgecore)
    Tasks: 12
   Memory: 32.9M
   CGroup: /system.slice/edgecore.service
           └─21334 /usr/local/bin/edgecore

Oct 23 15:19:56 ecs-42cb edgecore[21334]: I1023 15:19:56.461153   21334 edged.go:1105] consume added pod [kube-proxy-m52vn] successfully
Oct 23 15:20:01 ecs-42cb edgecore[21334]: E1023 15:20:01.460996   21334 metaclient.go:112] send sync message kube-system/configmap/kubernete...tries: 2
Oct 23 15:20:01 ecs-42cb edgecore[21334]: I1023 15:20:01.461051   21334 record.go:19] Warning Failed Error: get configmap from metaManager f...ondition
Oct 23 15:20:01 ecs-42cb edgecore[21334]: E1023 15:20:01.461187   21334 kuberuntime_manager.go:864] init container &Container{Name:upgrade-i...ETES_NOD
Oct 23 15:20:01 ecs-42cb edgecore[21334]: I1023 15:20:01.461234   21334 edged.go:990] worker [2] get pod addition item [calico-node-j949f]
Oct 23 15:20:01 ecs-42cb edgecore[21334]: I1023 15:20:01.461247   21334 edged.go:1058] start to consume added pod [calico-node-j949f]
Oct 23 15:20:01 ecs-42cb edgecore[21334]: I1023 15:20:01.461347   21334 process.go:282] ########## process get: req[{Header:{ID:c7916859-533...gmap/kub
Oct 23 15:20:01 ecs-42cb edgecore[21334]: E1023 15:20:01.461371   21334 process.go:284] remote query failed: timeout to get response
Oct 23 15:20:01 ecs-42cb edgecore[21334]: E1023 15:20:01.461393   21334 edged.go:1009] worker [2] handle pod addition item [calico-node-j949...to queue
Oct 23 15:20:01 ecs-42cb edgecore[21334]: I1023 15:20:01.848183   21334 record.go:19] Normal Pulled Container image "registry.cn-beijing.ali... machine
Hint: Some lines were ellipsized, use -l to show in full.
[root@ecs-42cb ~]# 

查看 KubeSphere 控制台的边缘节点,已经可以看到边缘节点注册上来:
在这里插入图片描述

4. Metrics& 日志

此时我们发现节点的 CPU 内存信息无法统计,需要开启 KubeSphere Metrics_Server 并在 Edge 端开启 EdgeStream:
编辑 cc,开启 metrics-server:
编辑边缘节点 /etc/kubeedge/config/edgecore.yaml 文件,搜索 edgeStream,将 false 更改为 true:

vim  /etc/kubeedge/config/edgecore.yaml 

修改部分如下:
 28     websocket:
 29       enable: true    
 30       handshakeTimeout: 30
 31       readDeadline: 15
 32       server: 192.168.0.9:30000
 33       writeDeadline: 15
 34   edgeStream:
 35     enable: true    #修改这个----------------------
 36     handshakeTimeout: 30
 37     readDeadline: 15
 38     server: 192.168.0.9:30004   #也需要修改
 39     tlsTunnelCAFile: /etc/kubeedge/ca/rootCA.crt
 40     tlsTunnelCertFile: /etc/kubeedge/certs/server.crt
 41     tlsTunnelPrivateKeyFile: /etc/kubeedge/certs/server.key
 42     writeDeadline: 15
 43   edged:
 44     cgroupDriver: cgroupfs
 45     cgroupRoot: ""
 46     cgroupsPerQOS: true
 47     clusterDNS: ""
 48     clusterDomain: ""

此处 server 字段设置端口为 30004,因为我们使用 NodePort 端口和云端通信


systemctl restart edgecore.service  #重启edgecore.service
systemctl status edgecore.service

查看节点监控信息:
在这里插入图片描述
我们上面章节中已经在 edgecore 开启 edgestream,实现了云端收集 Edge 节点的 Metrics 功能,这个操作同时也实现了边端日志查看的能力。

[root@master1 ~]# kubectl get nodes
NAME            STATUS     ROLES                         AGE    VERSION
edge02          Ready      agent,edge                    30m    v1.21.4-kubeedge-v1.9.2
master1         Ready      control-plane,master,worker   147m   v1.22.10
[root@master1 ~]# kubectl get nodes edge02 -o yaml
spec:
  podCIDR: 10.233.66.0/24
  podCIDRs:
  - 10.233.66.0/24
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/edge
status:
  addresses:
  - address: 192.168.0.56
    type: InternalIP
  - address: edge02
    type: Hostname
  conditions:
  - lastHeartbeatTime: "2023-10-23T07:47:21Z"
    lastTransitionTime: "2023-10-23T07:42:20Z"
    message: edge is posting ready status
    reason: EdgeReady
    status: "True"
    type: Ready
  daemonEndpoints:
    kubeletEndpoint:
      Port: 10351

InternalIP+kubeletEndpoint 组成 kubelet server 的地址,kubectl logs 就可以请求这个地址得到相关日志信息。但对于边缘端来说,大多数情况这个 internalIP 云端是无法访问的。

此时就需要 CloudCore 的 CloudStream 和 EdgeCore 的 EdgeStream 建立一个云边通道,在 CloudCore 和 EdgeCore 建立云边 WebSocket 通信后,将请求的 Edge kubelet server 的日志信息能通过通道返回给云端。这个通道需要两边开启 CloudStream 和 EdgeStream,并通过 TLS 证书进行验证。

边缘端在上面已经开启 EdgeStream,云端部署 CloudCore 后会自动开启。
查看云端挂载的 CloudCore.yaml 配置文件:
搜 cloudcore

在这里插入图片描述

在这里插入图片描述在这里插入图片描述当然,云边通道只能将日志从消息返回,具体返回到 CloudCore 的 CloudStream,还需设置一个 NAT 规则:

[root@master1 ~]# iptables -t nat -A OUTPUT -p tcp --dport 10350 -j DNAT --to 159.138.146.72:10003 #这里的IP是master公网IP,在master上执行
[root@master1 ~]# iptables -t nat -A OUTPUT -p tcp --dport 10351 -j DNAT --to 159.138.146.72:10003  #这里的IP是master公网IP,在master上执行

这个操作已经让自动部署的 iptables-manager 完成了~

[root@master1 ~]# iptables -t nat -L|grep 10003
DNAT       tcp  --  anywhere             anywhere             tcp dpt:10350 to:159.138.146.72:10003
DNAT       tcp  --  anywhere             anywhere             tcp dpt:10350 to:159.138.146.72:10003
DNAT       tcp  --  anywhere             anywhere             tcp dpt:10351 to:159.138.146.72:10003
DNAT       tcp  --  anywhere             anywhere             tcp dpt:10351 to:10.233.97.30:10003
[root@master1 ~]# 

在这里插入图片描述
进入边缘节点,查看容器组,我们可以看到有几个 daemonset 有强容忍度,调度到了边缘节点,由于边缘端很多情况存在不稳定通信,不适合运行 Calico 这种 CNI 组件,更多使用 EdgeMesh 进行云边通信和服务发现,我们可以手动 Patch Pod 以防止非边缘节点调度至工作节点:

#在master上执行
kubectl get daemonset -n kube-system |grep -v NAME |awk '{print $1}' | xargs -n 1 kubectl patch daemonset -n kube-system --type='json' -p='[{"op": "replace","path": "/spec/template/spec/affinity","value":{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"node-role.kubernetes.io/edge","operator":"DoesNotExist"}]}]}}}}]'


kubectl get daemonset -n metallb-system |grep -v NAME |awk '{print $1}' | xargs -n 1 kubectl patch daemonset -n metallb-system --type='json' -p='[{"op": "replace","path": "/spec/template/spec/affinity","value":{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"node-role.kubernetes.io/edge","operator":"DoesNotExist"}]}]}}}}]'

查看边缘节点容器组:
在这里插入图片描述

5. 运行应用

既然边缘节点注册进来了,我们来运行个应用吧。

进-应用负载-工作负载,创建一个 Deployment 工作负载:

#在master上操作
cat > nginx.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2  # 可根据需要进行调整
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeName: edge02  #如果是集群需要指定调度到边缘节点
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
      tolerations:
       - key: "node-role.kubernetes.io/edge"
         operator: "Exists"
         effect: "NoSchedule"
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: NodePort
EOF

kubectl apply -f nginx.yaml
kubectl get pods,svc -o wide
[root@master1 ~]# kubectl get pods,svc -o wide
NAME                                    READY   STATUS    RESTARTS   AGE   IP           NODE     NOMINATED NODE   READINESS GATES
pod/nginx-deployment-654cc5c59b-4wl6r   1/1     Running   0          65s   172.17.0.3   edge02   <none>           <none>
pod/nginx-deployment-654cc5c59b-dj9h5   1/1     Running   0          65s   172.17.0.4   edge02   <none>           <none>
pod/nginx-deployment-654cc5c59b-hbg79   1/1     Running   0          65s   172.17.0.2   edge02   <none>           <none>

NAME                    TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE     SELECTOR
service/kubernetes      ClusterIP      10.233.0.1     <none>        443/TCP        3h12m   <none>
service/nginx-service   NodePort   10.233.47.70       <none>     80:30212/TCP   65s     app=nginx
[root@master1 ~]# 

此时可以发现访问是不通的,因为云端无法访问边缘端的 Pod 网络,查看边缘 nginx-edge 的 ip:

[root@ecs-42cb ~]# docker ps -a
CONTAINER ID   IMAGE                COMMAND                  CREATED         STATUS         PORTS     NAMES
81acff7e9de2   nginx                "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes             k8s_nginx_nginx-deployment-654cc5c59b-dj9h5_default_5f0080de-a596-4c93-bfdd-010c4f3be4ba_0
dea58ebbceaf   nginx                "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes             k8s_nginx_nginx-deployment-654cc5c59b-hbg79_default_ffbdfbf0-960d-4a31-a0b2-2fb4071d30cd_0
104f90c8bf5e   nginx                "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes             k8s_nginx_nginx-deployment-654cc5c59b-4wl6r_default_811135eb-8676-473f-8ab9-a1b80dcb7334_0
c1e8767bf118   kubeedge/pause:3.1   "/pause"                 6 minutes ago   Up 6 minutes             k8s_POD_nginx-deployment-654cc5c59b-dj9h5_default_5f0080de-a596-4c93-bfdd-010c4f3be4ba_0
064017aa1c5d   kubeedge/pause:3.1   "/pause"                 6 minutes ago   Up 6 minutes             k8s_POD_nginx-deployment-654cc5c59b-4wl6r_default_811135eb-8676-473f-8ab9-a1b80dcb7334_0
9f9d485352e8   kubeedge/pause:3.1   "/pause"                 6 minutes ago   Up 6 minutes             k8s_POD_nginx-deployment-654cc5c59b-hbg79_default_ffbdfbf0-960d-4a31-a0b2-2fb4071d30cd_0
[root@ecs-42cb ~]# 

#在边缘节点访问访问 172.17.0.3
[root@ecs-42cb ~]# curl 172.17.0.3
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@ecs-42cb ~]# 

可见 Nginx Pod 服务是正常的,这个 IP 地址分配也很熟悉,172.17.0.0/16,这不是 docker bridge 网段嘛,查看下边缘节点 docker0 地址:

[root@ecs-42cb ~]# ip add|grep docker
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
5: veth2fadd3b@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
7: veth95b5b91@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
9: veth0bc8fb6@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
[root@ecs-42cb ~]# 

我们可以看到 nginx-deployment 这个容器还是以 Pod 形式运行的,通过 pause 容器共享网络命名空间,只不过它没有使用集群的 PodCIDR 分配,而是使用 docker bridge 网络。因此在没有 coredns 和 kube-proxy 的服务发现和云边容器网络互通的条件下,边端的 Pod Service 是无法访问的。这很符合边云特点,边缘端更多是私网,且无法被云端访问,这种单向通信的特点需要有其他形式的网络促成云边的通信和服务访问,比如建立隧道。

6. 已安装过KS通过管理界面进行添加应用商店的设置

若之前已安装过kubesphere,则可通过kubesphere管理界面左侧菜单CRD -> 搜索clusterconfiguration -> 然后编辑其下资源ks-installer,如下图
在这里插入图片描述在这里插入图片描述设置openpitrix.store.enabled为true:
在这里插入图片描述

设置完成后可发现在KS管理界面上出现应用商店菜单,如下图:

也可以在不登录控制台的情况下直接访问 <节点 IP 地址>:30880/apps 进入应用商店。
如 http://159.138.146.72:30880/apps
且KubeSphere 3.2.x 中的应用商店启用后,OpenPitrix 页签不会显示在系统组件页面。

在这里插入图片描述在这里插入图片描述

应用商店的具体使用请参考:博客

7. 云边服务互访

KubeEdge 社区有个 EdgeMesh 的项目。在边缘计算机的场景下,网络拓扑结构更加复杂。不同区域的边缘节点往往不能互联,而应用之间又需要业务流量互通。EdgeMesh 即可满足边缘节点之间流量互通的要求。按照官方 Github 介绍,EdgeMesh 作为 KubeEdge 集群的数据平面组件,为应用程序提供简单的服务发现和流量代理功能,从而屏蔽了边缘场景中的复杂网络结构。

因此 EdgeMesh 主要实现两个终极目标:
用户可以在不同的网络中访问边到边、边到云、云到边的应用
部署 EdgeMesh 相当于部署了 CoreDNS+Kube-Proxy+CNI

7.1 应用商店安装edgemesh

7.1.1 为edgemesh教程创建一个企业空间。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

7.1.2 为edgemesh教程创建一个项目

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

7.1.3 在appstore应用商店后找到edgemesh进行安装

![在这里插入图片描述](https://img-blog.csdnimg.cn/81a5f0011406424ca2ed37ddcc1760b
在这里插入图片描述
进入应用设置页面,可以设置应用名称(默认会随机提供一个唯一的名称)和选择安装的位置(对应的 Namespace) 和版本,然后点击右上角 “下一步”。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
根据 EdgeMesh 文档的指导编辑 values.yaml 文件,主要是修改 server.nodeName
和 server.advertiseAddress
的值,然后点击 “安装” 使用配置。

在这里插入图片描述

server:
  nodeName: "k8s-node01"   # 指定edgemesh-server部署的节点
  advertiseAddress:
    - 1x.xx.xx.x8         # 指定edgemesh-server对外暴漏服务的IP列表(此处填写的是华为云ELB的公网IP)
  modules:
    tunnel:
      enable: true
      listenPort: 20004    # 需要将该端口暴漏到公网(无需修改)
agent:
  modules:
    edgeProxy:
      enable: true
      socks5Proxy:
        enable: true       # 开启SSH隧道代理
        listenPort: 10800

部署完成后需要设置 edgemesh-agent 的节点容忍,使其能调度到 master 和 edge 节点上。

spec:
  template:
    spec:
      # 添加如下内容
      tolerations:
        - key: node-role.kubernetes.io/edge
          operator: Exists
          effect: NoSchedule
        - key: node-role.kubernetes.io/master
          operator: Exists
          effect: NoSchedule

最后查看部署结果(确保 edgemesh-agent 在每一个节点都运行了一个 Pod):

7.1.4 部署 EdgeMesh

使用 admin 身份登入 KubeSphere,点击工作台进入 “system-workspace” 工作空间,在 kubesphere-master 集群项目中找到 kubeedge 并进入,在该项目应用负载中创建基于模板的应用,选择从 " 应用商店 " 搜索找到 “edgemesh” 并点击安装,安装前请确认安装位置是否正确。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_14910065

你的支持是我最大的努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值