我正在远程服务器上工作,我在服务器上创建了一个名为“triton_server_image”的 Docker 映像,并希望在我的远程服务器上运行 triton。它成功并且正在运行。但随后我必须将 docker 镜像部署到 Kubernetes。为此,我编写了一个部署.yaml 文件和一个 service.yaml 文件,然后运行命令 -
kubectl apply -f deployment.yaml
但后来我收到了此错误 -
`
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 9s default-scheduler Successfully assigned default/triton-inference-server-5cd479476d-g98rl to ttogpu
Normal Pulling 8s kubelet Pulling image "triton_server_image:latest"
Warning Failed 7s kubelet Failed to pull image "triton_server_image:latest": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/library/triton_server_image:latest": failed to resolve reference "docker.io/library/triton_server_image:latest": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
Warning Failed 7s kubelet Error: ErrImagePull
Normal BackOff 6s kubelet Back-off pulling image "triton_server_image:latest"
Warning Failed 6s kubelet Error: ImagePullBackOff`
但是由于我在远程服务器上工作,我可以看到图像名称是正确的,并且没有任何问题。我运行
docker images
重新检查,图像名称是正确的。那么,为什么我会收到错误消息?而且我没有 docker 凭据,只是我正在远程服务器上工作,因此我们在服务器本地创建了 docker 映像,因为之前安装了 docker。
我从这个 - 部署中获取了一些参考,但没有成功
您应该设置
ImagePullPolicy: Never
以使用本地 Docker 镜像。
apiVersion: apps/v1
kind: Deployment
metadata:
name: triton_server
spec:
template:
spec:
containers:
- name: app
image: triton_server:latest
imagePullPolicy: Never
...
如果您对图像使用
ImagePullPolicy
标签,Always
的默认值为 latest
。这意味着,Kubernetes 总是尝试从 triton_server:latest
中提取给定的镜像 docker.io
。