我想启动由containerd管理的节点本地容器映像。
从ctr images list
看,存在节点局部图像
REF TYPE DIGEST SIZE PLATFORMS LABELS
cuda application/vnd.docker.distribution.manifest.v2+json sha256:6c2570b465eb3c03c2b892520bfb59ec9347c45dcfcf557b2c0ba03a27fba378 44.6 MiB linux/amd64 -
docker.io/library/hello-world:latest application/vnd.docker.distribution.manifest.v2+json sha256:fa68d054b0a8f55613c10f2db5c6617286dd30fde5607d2824ed9fb283e23043 16.8 KiB linux/amd64 -
docker.io/nvidia/cuda:11.0-base application/vnd.docker.distribution.manifest.v2+json sha256:6c2570b465eb3c03c2b892520bfb59ec9347c45dcfcf557b2c0ba03a27fba378 44.6 MiB linux/amd64 -
我用添加imagePullPolicy: Never
来制作以下yaml,但失败了当然,我省略了imagePullPolicy: Never
,它工作得很好。
apiVersion: v1
kind: Pod
metadata:
name: cuda-vectoradd
spec:
restartPolicy: OnFailure
containers:
- name: cuda-vectoradd
imagePullPolicy: Never
image: "cuda"
resources:
# limits:
# nvidia.com/gpu: 1
失败的情况下,错误消息如下。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 24m default-scheduler Successfully assigned default/cuda-vectoradd to testserver
Warning Failed 22m (x12 over 24m) kubelet Error: ErrImageNeverPull
Warning ErrImageNeverPull 4m42s (x97 over 24m) kubelet Container image "cuda" is not present with pull policy of Never
是否有任何方法来加载节点本地图像的容器?欢迎提出任何意见。
感谢您的pod清单错误。图像不是cuda
而是docker.io/nvidia/cuda:11.0-base
。应该包括整个字符串。所以:
apiVersion: v1
kind: Pod
metadata:
name: cuda-vectoradd
spec:
restartPolicy: OnFailure
containers:
- name: cuda-vectoradd
imagePullPolicy: Never
image: docker.io/nvidia/cuda:11.0-base
...
由于docker.io
是默认的图像存储库,您可以在字符串中省略它。
image: nvidia/cuda:11.0-base
是足够的。