提取图像失败



我在这里遵循关于kserve https://github.com/kserve/modelmesh-serving/blob/main/docs/quickstart.md的教程

这是我的docker&k8s问题吗?我花了几个小时试图调试,但无济于事。

我得到以下错误:


Events:
Type     Reason     Age    From               Message
----     ------     ----   ----               -------
Normal   Scheduled  4m20s  default-scheduler  Successfully assigned modelmesh-serving/modelmesh-serving-mlserver-0.x-77cc8fd548-xdgvr to minikube
Normal   Pulling    4m18s  kubelet            Pulling image "kserve/modelmesh:v0.9.0-rc0"
Normal   Pulled     3m18s  kubelet            Successfully pulled image "kserve/modelmesh:v0.9.0-rc0" in 59.419620166s
Normal   Created    3m18s  kubelet            Created container mm
Normal   Started    3m17s  kubelet            Started container mm
Normal   Pulling    3m17s  kubelet            Pulling image "seldonio/mlserver:0.5.2"
Warning  Failed     68s    kubelet            Failed to pull image "seldonio/mlserver:0.5.2": rpc error: code = Unknown desc = context deadline exceeded
Warning  Failed     68s    kubelet            Error: ErrImagePull
Normal   Pulling    68s    kubelet            Pulling image "kserve/modelmesh-runtime-adapter:v0.9.0-rc0"

您尝试拉取的图像已经存在,并且可以在这里获得。然而,在我看来,它是非常大的(2.74 GB)。这可能意味着您在提取图像时遇到了超时。

根据Kubernetes集群和用例可以做以下:

  • 尝试几次,它会在某个点拉出图像
  • 增加kubelet中的--runtime-request-timeout
  • 执行docker pull seldonio/mlserver:0.5.2

正如@ rafaowleszko所提到的,图像"seldonio/mlserver:0.5.2"您正在尝试拉非常大,这可能会抛出错误:ErrImagePull:上下文截止日期错误。您仍然可以使用docker pull提取映像,之后调度成功。

当超时时,kubelet将取消请求,抛出一个错误。可能的解决方法是通过配置文件(在/var/lib/kubelet中)通过调整超时设置或增加参数--runtime-request-timeout duration,然后通过运行命令docker pull imagename拉取图像。.

查看kubelet-config-file获取更多信息

这很可能与你的图像太大有关。

我要做的一件事是在你的部署文件中, 在容器的规范中,添加带有请求和限制的资源,例如

resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi