如何指定Ray健康检查端口,解决Worker节点DEAD问题?
解决方案
1. 固定Ray节点的健康检查及服务端口
Ray支持通过环境变量指定端口范围或固定端口,彻底解决随机端口带来的防火墙、Docker映射问题。核心配置的环境变量如下:
RAY_HEALTH_CHECK_PORT:直接指定健康检查的固定端口(例如设为8080)RAY_NODE_PORT_RANGE:定义节点所有服务端口的范围(例如8000-8099),覆盖健康检查、节点通信等所有动态端口RAY_PORT:Ray主服务端口(默认6379,可自定义)
Head节点启动命令
docker run -d --name ray-head \ -e RAY_HEALTH_CHECK_PORT=8080 \ -e RAY_NODE_PORT_RANGE=8000-8099 \ -p 6379:6379 \ -p 8080:8080 \ -p 8000-8099:8000-8099 \ rayproject/ray:2.35.0-py312-gpu \ ray start --head --dashboard-host 0.0.0.0
Worker节点启动命令
docker run -d --name ray-worker \ -e RAY_HEALTH_CHECK_PORT=8080 \ -e RAY_NODE_PORT_RANGE=8000-8099 \ -p 8080:8080 \ -p 8000-8099:8000-8099 \ rayproject/ray:2.35.0-py312-gpu \ ray start --address=192.168.1.11:6379
2. 配置Windows防火墙规则
在两台服务器上分别创建入站规则,允许以下TCP端口的流量:
- 主服务端口:6379
- 健康检查端口:8080
- 节点服务端口范围:8000-8099
操作步骤:
- 打开「Windows Defender防火墙」→「高级设置」→「入站规则」→「新建规则」
- 选择「端口」→「TCP」→ 输入目标端口/端口范围
- 选择「允许连接」→ 按需勾选「域」「专用」「公网」
- 命名规则并完成配置
3. 验证配置
启动节点后,查看gcs_server.out日志确认Head节点能正常访问Worker的健康检查端口,同时访问Ray仪表盘(默认http://192.168.1.11:8265),观察Worker节点是否稳定在线。
注意:若使用GPU版本容器,需确保Windows服务器已配置NVIDIA Container Toolkit,避免GPU相关问题干扰节点状态。
内容的提问来源于stack exchange,提问作者dmjy
相关产品推荐
相关产品推荐

