我在这里遵循关于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