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

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

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

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

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

安装过程中可是累死个人。

一、通过应用商店安装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

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

$ 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