开发者社区> 问答> 正文

Node启用External Ip之后,查看node详情时manager仍然尝试连接node的内网

使用otter版本4.2.15在跨机房的情况下: Manager在一个机房,这个机房也有一个Node,看起来正常。添加了另外一个机房的node并配置好了Node的External Ip,并且查看数据库中也已经是启用了外网IP 另外机房的Node启动之后,在Manager的列表中看到都是已启动,但点击查看Node详情时,Manager报错了。错误是Caused by: java.rmi.ConnectIOException: Exception creating connection to: 10.1.98.9; nested exception is: java.net.NoRouteToHostException: No route to host (Host unreachable) 这是另一个机房中的Node的内网IP,感觉这个启用外网IP没启作用,或者是Otter本身的bug

原提问者GitHub用户 Ayden-Franklin

展开
收起
古拉古拉 2023-06-21 12:09:38 69 0
2 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    根据您提供的信息,可能是由于 Otter Manager 尝试连接 Node 时使用的是 Node 的内网 IP 地址,导致无法访问。这个问题通常是由于 Otter Manager 缓存了 Node 的内网 IP 地址,而没有及时更新为外网 IP 地址引起的。

    为了解决这个问题,您可以尝试以下方法:

    检查 Node 的配置文件是否正确。确认 Node 的配置文件中已经启用了外网 IP 地址,并且已经保存并重启了 Node 应用。

    清除 Otter Manager 的缓存。可以尝试清除 Otter Manager 的缓存,以便重新获取 Node 的 IP 地址。具体方法可以参考 Otter Manager 的文档和日志,通常是通过删除 Otter Manager 缓存目录下的缓存文件来实现。

    更新 Otter Manager 的配置。如果 Otter Manager 的配置中已经指定了 Node 的 IP 地址,可以尝试更新配置并重启 Otter Manager 应用。具体方法可以参考 Otter Manager 的文档和日志,通常是通过修改 Otter Manager 的配置文件来实现。

    确认跨机房网络是否正常。如果以上方法都无法解决问题,可以尝试检查跨机房网络是否正常。可以使用 ping、traceroute 等网络工具来检查网络连通性和延迟情况,并与网络管理员协调解决问题。

    希望以上建议能够帮助您解决问题。

    2023-06-30 17:53:20
    赞同 展开评论 打赏
  • 我查过一些以前close的issue,算是找到了解决方案,就是node这台服务器的hostname -i显示的IP地址,必需等于配置的外网IP.但这我认为这仍然是个bug,在NodeMBeanServiceImpl这个类中明明已经获致到了onde的externalIp,为什么不用配置好的外部IP,而要用从node上获取的hostname对应的IP?这个外部IP配置成为了鸡肋。具体做法中最简单就是在/etc/hosts中增加一行记录10.1.98.9 222.xx.xx.23就是把公网IP解析为内网IP.很诡异的做法,很奇葩的做法,很神奇的bug。

    如果是docker容器中运行node则可以在docker的run命令中增加一个参数--hostname 222.xx.xx.23就可以了。如果在kubernetes中运行,那就只能失败到放弃了,因为这个机制就是node启动前必需知道node这个pod的pod IP,并且在manster中配置好,和能启动pod,而kubernetes的特点就pod的IP是启动后才知道,所以这个矛盾是无法解决的。otter对于容器化的支持非常不好,就算是docker,也要先启动一下,看到node分配到的IP,立刻在master中配置好并且重新启node的容器,这样有很大几率保持node的容器的IP不变,如果这个过程中node容器所在的服务器中有其它容器启动或停止,很可能导致node再启动后IP已经是新的了,就会失败了。在flannel的环境中也是一样的不确定。

    原回答者GitHub用户 Ayden-Franklin

    2023-06-21 12:58:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
探究 Node.js 的服务端之路 立即下载
个推微服务实践 基于OpenResty 和Node.js 立即下载
沪江基于Node.js大规模应用实践 立即下载