How to refer local docker images loaded from tar file in Kubernetes deployment?

6/21/2021

I am trying to create a Kubernetes deployment from local docker images. And using imagePullPolicy as Never such that Kubernetes would pick it up from local docker image imported via tar.

Environment

  •  SingleNodeMaster  # one node deployment

But Kubernetes always trying to fetch the private repository although local docker images are present.

Any pointers on how to debug and resolve the issue such that Kubernetes would pick the images from the local docker registry? Thank you.

Steps performed

  • docker load -i images.tar
  • docker images # displays images from myprivatehub.com/nginx/nginx-custom:v1.1.8
  • kubectl create -f local-test.yaml with imagepullPolicy as Never

Error

Pulling  pod/nginx-custom-6499765dbc-2fts2   Pulling image "myprivatehub.com/nginx/nginx-custom:v1.1.8" 
Failed   pod/nginx-custom-6499765dbc-2fts2   Error: ErrImagePull   
Failed   pod/nginx-custom-6499765dbc-2fts2   Failed to pull image "myprivatehub.com/nginx/nginx-custom:v1.1.8": rpc error: code = Unknown desc = failed to pull and unpack image "myprivatehub.com/nginx/nginx-custom:v1.1.8": failed to resolve reference "myprivatehub.com/nginx/nginx-custom:v1.1.8": failed to do request: Head "https://myprivatehub.com/v2/nginx/nginx-custom/manifests/v1.1.8": dial tcp: lookup myprivatehub.com: no such host
docker pull <imagename>

Error response from daemon: Get https://myprivatehub.com/v2/: dial tcp: lookup myprivatehub.com on 172.31.0.2:53: no such host
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-custom
  namespace: default
spec:
  selector:
    matchLabels:
      run: nginx-custom
  replicas: 5 
  template:
    metadata:
      labels:
        run: nginx-custom
    spec:
      containers:
      - image: myprivatehub.com/nginx/nginx-custom:v1.1.8
        imagePullPolicy: Never
        name: nginx-custom
        ports:
        - containerPort: 80
-- Mozhi
container-image
docker
kubernetes

1 Answer

6/22/2021

This happens due to container runtime being different than docker. I am using containerd , after switching container runtime to docker , it started working.

-- Mozhi
Source: StackOverflow