Ray集群启动时出现连接关闭提示、示例脚本返回127.0.0.1而非节点IP的问题咨询
1. Shared connection to X.X.X.X closed.提示是否正常?
这个提示完全是良性且正常的。Ray的ray up和ray submit命令本质上是通过SSH连接到集群节点(包括head节点)来执行初始化、启动Ray服务或提交脚本的操作。当这些命令执行完成后,SSH连接就会自动关闭,所以你会看到大量这类提示。它只是SSH连接生命周期结束的正常反馈,不会影响集群的正常运行,不用在意。
2. 测试脚本仅返回127.0.0.1且未用到Worker节点的原因?
从你的配置和执行结果来看,核心问题出在Worker节点没有被正确启动,而返回127.0.0.1是Docker容器环境下的正常现象:
(1)Worker节点未启动的原因
你的config.yaml中设置了:
min_workers: 0 max_workers: 0
虽然你在worker_ips里指定了192.168.26.43,但Ray的本地集群模式下,当min_workers和max_workers都为0时,集群只会启动Head节点,不会启动任何Worker节点。所有任务自然都只能在Head节点上运行。
(2)返回127.0.0.1的原因
因为你使用了Docker容器来运行Ray,socket.gethostbyname(socket.gethostname())在容器内部解析的是容器自身的回环地址,而不是宿主机的真实IP。但这个现象不会影响Ray集群的调度功能——Ray内部是用节点的真实IP来进行任务调度的,只是你的测试脚本获取到的是容器内的地址而已。
解决方案
修改config.yaml中的Worker节点数量配置,让它与你指定的worker_ips数量匹配:
min_workers: 1 max_workers: 1
然后重新执行ray up config.yaml来启动Worker节点。之后再运行测试脚本,就能看到任务被调度到Head节点(192.168.26.47)和Worker节点(192.168.26.43)上,对应的IP计数也会包含这两个地址。
内容的提问来源于stack exchange,提问作者Cat Terry

