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