-
Notifications
You must be signed in to change notification settings - Fork 978
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to run InferenceService on a local cluster #3689
Comments
Hi, I never used microk8s before, but there are a few things that might be causing it: First, shouldn't you use the complete image name instead just Secondly, this looks strange:
notice the space in the last / you might need to investigate why is this API address having the extra space at the end. |
Hello!
Interestingly, KubeFlow is automatically deployed from the local images, but the InferenceService is not possible. |
you might need to do this in your isvc: https://kserve.github.io/website/0.11/modelserving/v1beta1/custom/custom_model/#deploy-the-rest-custom-serving-runtime-on-kserve |
I don’t quite understand what exactly I need to do? I compiled the image in Docker. It is successfully downloaded and deployed in a cluster with Internet access. From this cluster I export the image as a tar file. I import the resulting image into the cluster without the Internet. For some reason, InferenceService thinks that it does not exist and tries to download it. If you create a Deployment, it considers that the image is present. |
See the inference service structure from the link I sent you. PullImagePolicy and the container is a property from the containers field. |
Sorry, but I didn't find any mention of imagePullPolicy in the link provided. However, this parameter is in the description of V1beta1TorchServeSpec. |
I tried to organize a local registry. I uploaded my image yurkoff/torchserve-kfs:0.9.0-gpu there, but I get the following error:
Given that the registry is available.
I can’t understand what information InferenceService wants to receive from outside if everything is available locall |
Hi, what I meant was to use this structure: spec:
predictor:
containers:
image: xxx
name: kserve-container
ports: xxx or you can define it in your custom Serving Runtime as well. |
Hi, @spolti !
|
Looks like you are using KServe serverless mode, which uses Knative. Knative always tries to resolve image tags to digests, which is an operation that requires access to the registry (reference: https://knative.dev/docs/serving/tag-resolution/) Thus, you may want your try using the digest of your image in the InferenceServices, instead of |
Nice @israel-hdez , didn't spot it :D |
Hi, @israel-hdez, @spolti! Thanks a lot! This works for me!
by adding the following line:
and the local image was successfully applied in InferenceService. |
/kind bug
What steps did you take and what happened:
I have a local cluster without internet access. Manifests version 1.8 is deployed on it. I deployed this version using images imported as tar files. I also imported the image for InferenceService as a tar file. However, the service does not start. If you run the command
microk8s kubectl describe inferenceservices -n kubeflow-namespace llm
, you may see the following error message:Moreover, the image is present in microk8s ctr...
microk8s ctr images list | grep yurkoff
In machine with internet:
In local machine without internet:
What did you expect to happen:
Successful deployment of InferenceService
What's the InferenceService yaml:
Please note that I specifically set
imagePullPolicy: "Never"
Anything else you would like to add:
I would like to note that KubeFlow with local images was successfully deployed.
It turns out that InferenceService, even if there is an image in the ctr-storage, tries to gain access from the outside. The option
imagePullPolicy: "Never"
doesn't work.Environment:
kubectl version
): MicroK8S 1.28/etc/os-release
): Ubuntu 20.04The text was updated successfully, but these errors were encountered: