目前KubeSphere对接的是KubeEdge 1.6.x版本。
而KubeEdge 1.8.0增加了cloudcore的高可用特性。
还有一个bug kubeedge/kubeedge#3232相关的PR待合并。
希望KubeSpherece能跟踪此问题,做升级。
- 已编辑
Kubeedge edgecore在安装时有一个配置项nodeIP,如果没配置,edgecore就取宿主机的真实IP,edgecore把这个IP作为k8s节点的internal IP并通过websocket主通道定时上报到cloudcore,cloudcore收到后就更新进k8s里该node的NodeStatus里作为internal IP。
所以上文中的方案还有一点问题,这里做一点补充:显然除了文中步骤外,还得阻止node在k8s里的internal IP被修改,它只能由IPAM分配来初始化。
解决办法:修改cloudcore源码,收到edgecore上报的internal IP后,不要去更新k8s里对应的internal IP,可以作为external IP与从k8s里查询出来的internal IP一起更新进k8s。还可以再进一步修改edgecore源码将nodeIP改作为external IP上报。这样,node的真实IP也可以在k8s里查到。