Specify Ip adress for the head as a LoadBalancer service type

How severe does this issue affect your experience of using Ray?

  • High: It blocks me to complete my task.

Hi,

I am migrating from Ray 1.8 to Ray 2.2. We are deploying on Google Cloud Platform - EKS (Managed Kubernetes).

Our Ray head need to be accessible from outside Kubernetes (it runs a gRPC server)

With Ray 1.8 we are able to deploy the Head as a LoadBalancer kubernetes service with a static IP address using the following description in the ray configuration :

    [...]
    services:
      # Service that maps to the head node of the Ray cluster.
      - apiVersion: v1
        kind: Service
        metadata:
            name: platform-cluster-ray-head
        spec:
            type: LoadBalancer
            loadBalancerIP: 35.xxx.xxx.xxx
    [...]

Now that we are migrating to Ray 2.2, we are trying to use KubeRay to deploy the cluster on Kubernetes. We are able to deploy the head as a loadbalancer, but I can’t find a way to specifiy the IP address to use for the loadbalancer through the new Ray configuration file.

  [...]
  # Ray head pod template
  headGroupSpec:
    # serviceType: ClusterIP # optional
    serviceType: LoadBalancer
  [...]

So when the service is deployed it has an ephemeral IP address.

My questions :

  • How can we specify the loadbalancer IP address in the Ray configuration file (like we did on Ray 1.8) ?
  • Do see other options to have a stable way to access the head from outside kubernetes that support http/gRPC ?

Thanks

Thank you for your question!

Q1: How can we specify the loadbalancer IP address in the Ray configuration file (like we did on Ray 1.8) ?

KubeRay currently does not expose loadBalancerIP to the users. I opened an issue kuberay#877 to track the progress.

Q2: Do see other options to have a stable way to access the head from outside kubernetes that support http/gRPC ?

KubeRay community provides some examples about ingress setup.

Hi,

Thank you for your response. I will follow the issue closely.

In the meantime, as a workaround, I am updating the service after the deployment

kubectl patch svc my-service  -p '{"spec":{"loadBalancerIP":["35.XXX.XXX.XXX"]}}'

Thanks