How to start containerd node local container images in kubernetes?

Viewed 219

I want to start node local container image which is managed by containerd.

from seeing ctr images list, there exist node local images

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 -

I make following yaml with adding imagePullPolicy: Never and failed with Of course, I omit imagePullPolicy: Never, it works fine.

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    

Failed case, error messages are follows.

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

Is there any method to load node local image for containerd? Any comments are welcome.

Thanks

1 Answers

Your pod manifest is wrong. Image is not cuda but docker.io/nvidia/cuda:11.0-base. The whole string should be included. So:

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
...

Since docker.io is the default image repository, you can omit it in the string.

image: nvidia/cuda:11.0-base

is sufficient enough.

Related