New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
error opening relay circuit: NO_RESERVATION #411
Comments
对于edgemesh>=1.12版本 在架构上不再需要部署edgemesh-server了,内网穿透和中继的能力移植到了edgemesh-agent里面。如果某个节点或者某些节点具有公网IP,你可以让部署在这些节点上的edgemesh-agent成为中继。 edgemesh-agent在启动的时候,会多次尝试连接那些被配置成中继节点的relayNodes(我们也称之为bootstrap节点)。对比小于1.12版本的差异是,现在即使连接不上bootstrap节点,edgemesh-agent也不会挂掉,紧接着它会通过多播(组播)的方式发送mDNS协议的数据包,在同一个VLAN网络里发现其他edgemesh-agent并记录peer ID。 这边需要满足几个条件: a. mDNS协议本身是基于UDP协议的,你需要确保你的网络放通了UDP数据包的传输 b. 由于mDNS是多播(组播)协议,因此要求你的节点在同一个网段里面;节点也必须也得在同一个VLAN里面,不同VLAN之间是隔离广播域的 c. edgemesh-agent的tunnel模块监听在20006,确保安全组/防火墙对20006端口放开 d. 所有节点应该具备内网IP(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16),否则mDNS的数据包会被丢弃,导致不能互相发现 满足上述的条件后,edgemesh就能协助同一个边缘网络里应用的互访了;如果不满足上述条件,你就必须配置relayNodes来走中继的方式去通信。relayNodes设置方式详细材料请阅读:KubeEdge EdgeMesh 高可用架构详解 。 |
我这里就是使用的中续节点配置了relaynode,其他环境也测试了可行,但是这个环境存在问题; |
edgemesh v1.12升级到go-libp2p circuit-v2,NO_RESERVATION (204) 表示你需要等待一会,让relayNode ready了,这是 go-libp2p circuit-v2的限制,详见:https://github.com/libp2p/specs/blob/master/relay/circuit-v2.md 可在代码里配置:
|
收到,感谢,后续我验证一下 |
What happened:
edge侧和cloud侧的通道无法建立
How to reproduce it (as minimally and precisely as possible):
04-configmap.yaml
公网ip:20006端口映射到cn-west-1-a-ed1-master01 20006端口
同时cn-west-1-a-ed1-master01也是部署cloud core节点
Anything else we need to know?:
master上的edgemesh-agent日志:
在cloud侧的work节点上edgemesh-agent日志:
在edge node上的edgemesh-agent日志:
在edge node上也telnet测试了公网ip 20006端口可以访问
Environment:
kubectl version
): v1.21.14cloudcore --version
andedgecore --version
): 1.10.3The text was updated successfully, but these errors were encountered: