Closed anovv closed 5 days ago
Also separate issue is that if setting worker.ports
on head node spec it overrides all existing ports (dashboard, prometheus, client, etc.) instead of appending it
Just to clarify, when you say node_ip + port, you are referring to the pod IP and not the Kubernetes node right?
Correct pod_ip == node_ip here, not kubernetes node
Your example code is binding the server to localhost:
>>> from http.server import HTTPServer, SimpleHTTPRequestHandler
>>> httpd = HTTPServer(('localhost', 1234), SimpleHTTPRequestHandler)
>>> httpd = HTTPServer(('localhost', 1234), SimpleHTTPRequestHandler)
>>> httpd.serve_forever()
Which explains why you can only reach it from localhost. Can you run it with 0.0.0.0
and test it again?
Thanks @andrewsykim, this solved the issue, it works now. Also figured you don't even need to add ports to worker.ports
, any port works without any configuration on Kubernetes side.
@anovv Can I close this issue?
@kevin85421, closed, thanks!
Search before asking
KubeRay Component
ray-operator, Others
What happened + What you expected to happen
I have an actor listening on TCP port for incoming connections from other actors on different nodes - they locate the actor by
node-ip:port
address (ZMQ transport). When running locally (on local Ray instance, actors in the same node) everything works fine, but fails when running in Kubernetes.I figured the issue is exposing the port, so added following to helm chart:
Unfortunately this did not seem to fix the problem.
What am I doing wrong?
Reproduction script
I ran a sample test
this fails
You can see that server works (localhost based request works), but using node_ip + port fails
Using node_ip+port from another node/pod fails as well
Anything else
I'm running minikube on m2 mac. KubeRay 1.1.1 , Ray 2.22.0
Are you willing to submit a PR?