kuberay icon indicating copy to clipboard operation
kuberay copied to clipboard

Get rid of wget dependency

Open jjyao opened this issue 4 months ago • 3 comments
trafficstars

We are planning to release slim version of Ray image which won't have wget available but kuberay depends on it. It should be possible to get rid of this dependency and use something else.

This means slim Ray image will only work with new versions of Kuberay but that's OK.

jjyao avatar Jun 27 '25 17:06 jjyao

There's a PR open to use http probes https://github.com/ray-project/kuberay/pull/2360

HTTP probes are probably what we want eventually, but the limitation is that it can only check a single endpoint and in some cases we need to check multiple endpoints, hence we are using wget in an exec probe. Will the slim version have an alternative tool we can use in the exec probe like curl?

andrewsykim avatar Jun 27 '25 17:06 andrewsykim

This means slim Ray image will only work with new versions of Kuberay but that's OK.

what's the image tag? Does ray-project/ray:X.Y.Z still have wget?

kevin85421 avatar Jun 27 '25 17:06 kevin85421

Does ray-project/ray:X.Y.Z still have wget?

it still has wget, but we are looking into releasing and allowing users to use much smaller / minimized images, and will make having wget optional. smaller images are faster to build/load/autoscale/etc.

kqueue is already building their own min image. we have a promise to them to support minimized image in the future.

our most optimized min image will not have wget. having wget inside ray image should not be a required assumption.

aslonnie avatar Jun 27 '25 17:06 aslonnie

HTTP probes are probably what we want eventually, but the limitation is that it can only check a single endpoint and in some cases we need to check multiple endpoints, hence we are using wget in an exec probe. Will the slim version have an alternative tool we can use in the exec probe like curl?

depending on curl does not feel right either.

what does the check look like now?

we can also:

  • consider adding a (hidden?) subcommand in ray like ray healthprobe
  • or say image can have a binary at /opt/ray/ray-healthprobe, and when it exists, then just use that; otherwise, fallback to wget
  • or an image can have a binary at /opt/ray/ray-httpget, as a simple replacement for wget or curl

and bonus if it does not depend on the image having a bash in it either.

in principle, we would like to have protocol that does not depend on specific/extra/general stuff inside the image. we would like the kuberay <-> image interface to be narrow and clear.

aslonnie avatar Jun 28 '25 15:06 aslonnie

How's the Ray image going, any updates?

400Ping avatar Aug 30 '25 03:08 400Ping

How's the Ray image going, any updates?

the base of slim image is already added here:

https://github.com/ray-project/ray/blob/d0e73e88c1ce7a087875544d7a63252bd4cd71a0/docker/base-slim/Dockerfile

will start building those soon.

will also follow up to add build args to for optionally disabling stuff in the image.

aslonnie avatar Aug 30 '25 04:08 aslonnie

and note that in the base-slim wget is not installed.

aslonnie avatar Aug 30 '25 04:08 aslonnie

assign this issue to @400Ping

kevin85421 avatar Sep 01 '25 22:09 kevin85421

@400Ping you need to take a look at:

  • readiness / healthiness probes
  • https://github.com/ray-project/kuberay/pull/3971#discussion_r2314556397

kevin85421 avatar Sep 01 '25 23:09 kevin85421

How's the Ray image going, any updates?

Hi, @400Ping I think you can build your own Ray image and implement it first?

Future-Outlier avatar Sep 03 '25 05:09 Future-Outlier

Hi @400Ping, please take a look at https://github.com/ray-project/ray/issues/56204#issuecomment-3268165266

rueian avatar Sep 09 '25 00:09 rueian