ray叢集work節點無法在不同wifi遠端連線的問題

空心橙子發表於2024-11-27

省流:
1.兩個不同wifi下的ray節點要手動配置引數‘--node-ip-address’
2.注意是--node-ip-address不是--node_ip_address注意下劃線

我使用python下的ray分散式
能正常連線 但是gcs心跳根本連線不上
檢查後發現:

不同的分散式節點不在同一個ip,所以會導致bootstrap_address的公網ip透過get_node_ip_address把公網ip變成當前區域網的ip,但是客戶端本身和伺服器端不是一個公網ip,就會導致伺服器端把客戶端自己的區域網ip當成gcs_server的連線ip,但是他們不在一個網下所以肯定是找不到的!

程式碼::

from ray._private.services import RAYLET_EXECUTABLE, GCS_SERVER_EXECUTABLE
from ray.scripts.scripts import start, stop, status

 def start_new_node(self, head_node_ip, head_node_port, name):
        # 初始化Ray,連線到現有叢集
        from requests import get
        ip = get('http://ipgrab.io').content.decode('utf8').strip()

        ctx = start.make_context('start',
                                 [
                                     '--address', f'{head_node_ip}:{head_node_port}',
                                     '--resources', f'{json.dumps(custom_resources)}',
                                     '--node-name', name,
                                     '--node-ip-address', ip,
                                 ],
                                 )
        result = start.invoke(ctx)
        print(f"Started {result}")

相關文章