当前位置: 首页 > 工具软件 > EdgeMesh > 使用案例 >

在kubesphere上部署edgemesh的大坑

冷善
2023-12-01

edgemesh是kubeedge上的重要插件,作用是提供边缘云在NAT环境下从云端到边端或边端到云端的网络访问。

具体的安装及部署的文档已经非常全面了:

Getting Started | EdgeMesh

但是kubesphere这个玩意是用来监控和管理云,也比较好,但是kubesphere对于kubeedge的集成跟原生安装Kubeedge是不太一样的。

kubesphere安装edgemesh也是要从AppStore里面装,跟原始的方式也有一点不太一样。

kubeedge的cloudcore是运行在容器里面的。

edgemesh对kubesphere的支持是2022年1月才出的。时间不太长,没有经过充分的测试,还有一些小问题。

安装过程中可是累死个人。目前能找到的在kubesphere上安装edgemesh的文档有以下2个:

1. kubesphere公众号文章

在KubeSphere上使用EdgeMesh打通云边隧道2

2. B站的视频

EdgeMesh Integration & Fluentd Operator update_哔哩哔哩_bilibili

由于这些大佬总是比较忙,没有时间进行充分的测试,这些文档都有点简略,导致用户体验不太好。

本人结合痛苦的经历总结在kubesphere上安装edgemesh的主要过程和坑。

一、通过应用商店安装edgemesh

在kubesphere上安装kubeedge不再详述。 

首先要为edgemesh教程创建一个企业空间、一个项目。

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

安装的时候,需要在配置文件中填主节点的名称和 IP地址,

advertiseAddress
 - "192.168.60.245"

再把edgemesh的demo装上,edgezone, cloudzone都启动了,但是却不通!!!

这个时候你需要:

二、些许修改

1. add list and watch

# kubectl edit clusterrole cloudcore -n kubeedge

- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - get
  - create
  - list        <--------   the last  2 lines
  - watch

参考这里: 

kubeedge/edgemesh#252

2. Add dynamicController to cloudcore in container

# kubectl edit cm cloudcore -n kubeedge

      cloudStream:
        enable: true
        streamPort: 10003
        tunnelPort: 10004
      dynamicController:       <-----    this 3 lines
        enable: true
        port: 10550

3. 设置edge端的edgecore.yaml

这个是写在 edgemesh的文档中的。

Getting Started | EdgeMesh

$ vim /etc/kubeedge/config/edgecore.yaml
modules:
  ..
  edged:
    clusterDNS: 169.254.96.16
    clusterDomain: cluster.local

为了跟cloudcore兼容,边缘端肯定kubeedge 也用的是v1.7.2,但是1.8之前的版本中含有edgemesh,需要停掉这个模块。

  edgeMesh:
    enable: false  <-- true to false
    lbStrategy: RoundRobin
    listenInterface: docker0
    listenPort: 40001
    subNet: 9.251.0.0/16
  edgeStream:
    enable: true  <-- false to true
    handshakeTimeout: 30
    readDeadline: 15
    server: 192.168.60.245:30004
    tlsTunnelCAFile: /etc/kubeedge/ca/rootCA.crt
    tlsTunnelCertFile: /etc/kubeedge/certs/server.crt
    tlsTunnelPrivateKeyFile: /etc/kubeedge/certs/server.key
    writeDeadline: 15

  metaManager:
    contextSendGroup: hub
    contextSendModule: websocket
    enable: true
    metaServer:
      debug: true
      enable: true <-- this line

基本就这些吧。

kubesphere的版本正在快速迭代,可能后面的v3.2.2版本所使用的kubeedge会更高,配置就更简单一点。

kubeedge与Kubesphere的配合也在不断的改进中。可能后面就不会再有这么多的坑。

如果不通,建议通过docker 查看 edgemesh-agent的日志,不管是云端还是边端。

docker logs xxxx

更多参见:

does anyone install edgemesh sucess in kubesphere? · Issue #4791 · kubesphere/kubesphere · GitHub

 类似资料: