<p>I have below YAML file used in Kubernetes of Windows Docker Desktop.</p>
<pre><code>---
apiVersion: apps/v1
kind: Deployment
metadata:
    name: thoughts-backend
    labels:
        app: thoughts-backend
    namespace: example
spec:
    replicas: 1
    selector:
        matchLabels:
            app: thoughts-backend
    template:
        metadata:
            labels:
                app: thoughts-backend
        spec:
            containers:
                - name: thoughts-backend-service
                  image: thoughts_server:latest
                  imagePullPolicy: Never
                  ports:
                     - containerPort: 8000
                  env:
                      - name: DATABASE_ENGINE
                        value: POSTGRESQL
                      - name: POSTGRES_DB
                        value: thoughts
                      - name: POSTGRES_USER
                        value: postgres
                      - name: POSTGRES_PASSWORD
                        value: somepassword
                      - name: POSTGRES_PORT
                        value: &quot;5432&quot;
                      - name: POSTGRES_HOST
                        value: &quot;127.0.0.1&quot;

                - name: thoughts-backend-db
                  image: thoughts_backend_db:latest
                  imagePullPolicy: Never

---
apiVersion: v1
kind: Service
metadata:
    namespace: example
    labels:
        app: thoughts-service
    name: thoughts-service
spec:
    ports:
        - name: thoughts-backend
          port: 80
          targetPort: 8000
    selector:
        app: thoughts-backend
    type: NodePort
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
    name: thoughts-backend-ingress
    namespace: example
spec:
    rules:
        - host: thoughts.example.local
          http:
            paths:
              - backend:
                  serviceName: thoughts-service
                  servicePort: 80
                path: /
</code></pre>
<p>When I run  kubectl get pods -n example   I get ErrImageNeverPull  error.</p>
<pre><code>&gt; kubectl get pods -n example
NAME                                READY   STATUS              RESTARTS   AGE
thoughts-backend-55c686f6f5-dhjj2   0/2     ErrImageNeverPull   0          3h43m
&gt;
</code></pre>
<p>Following is the output of describe command.</p>
<pre><code>  &gt; kubectl describe pod thoughts-backend-55c686f6f5-dhjj2  -n example
    Name:         thoughts-backend-55c686f6f5-dhjj2
    Namespace:    example
    Priority:     0
    Node:         docker-desktop/192.168.65.4
    Start Time:   Sat, 27 Nov 2021 16:31:29 +0530
    Labels:       app=thoughts-backend
                  pod-template-hash=55c686f6f5
    Annotations:  &lt;none&gt;
    Status:       Pending
    IP:           10.1.0.23
    IPs:
      IP:           10.1.0.23
    Controlled By:  ReplicaSet/thoughts-backend-55c686f6f5
    Containers:
      thoughts-backend-service:
        Container ID:
        Image:          thoughts_server:latest
        Image ID:
        Port:           8000/TCP
        Host Port:      0/TCP
        State:          Waiting
          Reason:       ErrImageNeverPull
        Ready:          False
        Restart Count:  0
        Environment:
          DATABASE_ENGINE:    POSTGRESQL
          POSTGRES_DB:        thoughts
          POSTGRES_USER:      postgres
          POSTGRES_PASSWORD:  somepassword
          POSTGRES_PORT:      5432
          POSTGRES_HOST:      127.0.0.1
        Mounts:
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-tqssf (ro)
      thoughts-backend-db:
        Container ID:
        Image:          thoughts_backend_db:latest
        Image ID:
        Port:           &lt;none&gt;
        Host Port:      &lt;none&gt;
        State:          Waiting
          Reason:       ErrImageNeverPull
        Ready:          False
        Restart Count:  0
        Environment:    &lt;none&gt;
        Mounts:
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-tqssf (ro)
    Conditions:
      Type              Status
      Initialized       True
      Ready             False
      ContainersReady   False
      PodScheduled      True
    Volumes:
      kube-api-access-tqssf:
        Type:                    Projected (a volume that contains injected data from multiple sources)
        TokenExpirationSeconds:  3607
        ConfigMapName:           kube-root-ca.crt
        ConfigMapOptional:       &lt;nil&gt;
        DownwardAPI:             true
    QoS Class:                   BestEffort
    Node-Selectors:              &lt;none&gt;
    Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
    Events:
      Type     Reason             Age                    From     Message
      ----     ------             ----                   ----     -------
      Warning  ErrImageNeverPull  3m4s (x326 over 4h1m)  kubelet  Container image &quot;thoughts_server:latest&quot; is not present with pull policy of Never
</code></pre>
<p>The Kubernetes version is</p>
<pre><code>&gt; kubectl.exe version
Client Version: version.Info{Major:&quot;1&quot;, Minor:&quot;21&quot;, GitVersion:&quot;v1.21.5&quot;, GitCommit:&quot;aea7bbadd2fc0cd689de94a54e5b7b758869d691&quot;, GitTreeState:&quot;clean&quot;, BuildDate:&quot;2021-09-15T21:10:45Z&quot;, GoVersion:&quot;go1.16.8&quot;, Compiler:&quot;gc&quot;, Platform:&quot;windows/amd64&quot;}
Server Version: version.Info{Major:&quot;1&quot;, Minor:&quot;21&quot;, GitVersion:&quot;v1.21.5&quot;, GitCommit:&quot;aea7bbadd2fc0cd689de94a54e5b7b758869d691&quot;, GitTreeState:&quot;clean&quot;, BuildDate:&quot;2021-09-15T21:04:16Z&quot;, GoVersion:&quot;go1.16.8&quot;, Compiler:&quot;gc&quot;, Platform:&quot;linux/amd64&quot;}
</code></pre>
<p>I am not sure what is this error and how to fix this in Docker-Desktop? Can anyone help me? I run Kubernetes in Docker-desktop application on Windows.</p>
<pre><code>   &quot;thoughts_server:latest&quot; is not present with pull policy of Never      
</code></pre>
<p>Further, added output of docker images for help in debugging.</p>
<pre><code>&gt; docker images
REPOSITORY                                      TAG                                                     IMAGE ID       CREATED         SIZE
k8s.gcr.io/ingress-nginx/controller             &lt;none&gt;                                                  ae1a7201ec95   3 days ago      285MB
httpd                                           latest                                                  ad17c88403e2   8 days ago      143MB
nginx                                           latest                                                  ea335eea17ab   10 days ago     141MB
kubernetesui/dashboard                          v2.4.0                                                  72f07539ffb5   6 weeks ago     221MB
k8s.gcr.io/ingress-nginx/kube-webhook-certgen   &lt;none&gt;                                                  c41e9fcadf5a   6 weeks ago     47.7MB
docker/desktop-kubernetes                       kubernetes-v1.21.5-cni-v0.8.5-critools-v1.17.0-debian   967a1c03eb00   2 months ago    290MB
k8s.gcr.io/kube-apiserver                       v1.21.5                                                 7b2ac941d4c3   2 months ago    126MB
k8s.gcr.io/kube-scheduler                       v1.21.5                                                 8e60ea3644d6   2 months ago    50.8MB
k8s.gcr.io/kube-controller-manager              v1.21.5                                                 184ef4d127b4   2 months ago    120MB
k8s.gcr.io/kube-proxy                           v1.21.5                                                 e08abd2be730   2 months ago    104MB
kubernetesui/metrics-scraper                    v1.0.7                                                  7801cfc6d5c0   5 months ago    34.4MB
docker/desktop-vpnkit-controller                v2.0                                                    8c2c38aa676e   6 months ago    21MB
docker/desktop-storage-provisioner              v2.0                                                    99f89471f470   7 months ago    41.9MB
k8s.gcr.io/pause                                3.4.1                                                   0f8457a4c2ec   10 months ago   683kB
k8s.gcr.io/coredns/coredns                      v1.8.0                                                  296a6d5035e2   13 months ago   42.5MB
k8s.gcr.io/etcd                                 3.4.13-0                                                0369cf4303ff   15 months ago   253MB
</code></pre>
<p>Further, added output of kubernetes get pod -o wide command</p>
<pre><code>&gt; kubectl get nodes -o wide
NAME             STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                   CONTAINER-RUNTIME
docker-desktop   Ready    control-plane,master   21h   v1.21.5   192.168.65.4   &lt;none&gt;        Docker Desktop   5.4.72-microsoft-standard-WSL2   docker://20.10.10
</code></pre>

myquest
<p>Per <a href="https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images" rel="nofollow noreferrer">docs</a>,</p>
<blockquote>
<p>By default, the kubelet tries to pull each image from the specified registry. However, if the imagePullPolicy property of the container is set to IfNotPresent or Never, then a local image is used (preferentially or exclusively, respectively).</p>
</blockquote>
<p>You use <code>imagePullPolicy: Never</code> directive in your Deployment and when you try to deploy your manifest, kubelet fails to find required images locally.</p>
