如何在kubernetes中启动containerd节点本地容器映像?



我想启动由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

是足够的。

最新更新