edgemesh是kubeedge上的重要插件,作用是提供边缘云在NAT环境下从云端到边端或边端到云端的网络访问。
具体的安装及部署的文档已经非常全面了:
但是kubesphere这个玩意是用来监控和管理云,也比较好,但是kubesphere对于kubeedge的集成跟原生安装Kubeedge是不太一样的。
kubesphere安装edgemesh也是要从AppStore里面装,跟原始的方式也有一点不太一样。
kubeedge的cloudcore是运行在容器里面的。
edgemesh对kubesphere的支持是2022年1月才出的。时间不太长,没有经过充分的测试,还有一些小问题。
安装过程中可是累死个人。目前能找到的在kubesphere上安装edgemesh的文档有以下2个:
1. kubesphere公众号文章
2. B站的视频
EdgeMesh Integration & Fluentd Operator update_哔哩哔哩_bilibili
由于这些大佬总是比较忙,没有时间进行充分的测试,这些文档都有点简略,导致用户体验不太好。
本人结合痛苦的经历总结在kubesphere上安装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
这个是写在 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