status ErrImageNeverPull unable to set up kubernetes dashboard on Mac

12/25/2019

I am using DOCKER desktop to setup kubernetes. I have used below command to install kubernetes dashboard on mac

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/test-resources/kubernetes-dashboard-local.yaml

when i use kubectl get pod --namespace=kube-system

NAME                                              READY   STATUS              RESTARTS   AGE
coredns-6dcc67dcbc-2qdls                          1/1     Running             0          4h50m
coredns-6dcc67dcbc-nqm76                          1/1     Running             0          4h50m
etcd-docker-desktop                               1/1     Running             0          4h49m
kube-apiserver-docker-desktop                     1/1     Running             0          4h50m
kube-controller-manager-docker-desktop            1/1     Running             0          4h49m
kube-proxy-pq9pv                                  1/1     Running             0          4h50m
kube-scheduler-docker-desktop                     1/1     Running             0          4h49m
kubernetes-dashboard-local-599bb4877f-6nnkz       0/1     ErrImageNeverPull   0          138m
kubernetes-metrics-scraper-head-787ff8f87-rrq67   1/1     Running             0          138m

i wanted to know what is that "ErrImageNeverPull" of that POD. it is not even allowing me to describe/delete by that name.

kubectl describe pod kubernetes-dashboard-local-599bb4877f-6nnkz

Error from server (NotFound): pods "kubernetes-dashboard-local-599bb4877f-6nnkz" not found

How to fix or get rid of that so that i can successfully proceed further.

-- Nirmesh
kubernetes

1 Answer

12/25/2019

That YAML file specifies:

image: kubernetes/kubernetes-dashboard-amd64:head
imagePullPolicy: Never

So ErrImageNeverPull means that (a) that exact image name doesn't exist on the node where the pod is scheduled, and (b) imagePullPolicy: Never tells it to not try to fetch it.

Since the pod is not in the default namespace, you need to provide the kubectl --namespace kube-system option option to every command that tries to interact with it (not just get pod but also describe pod, delete deployment, etc.).

It looks like you've pulled a deployment spec from inside the dashboard's test tree which is intended to be used by a developer actively working on the dashboard code. The installation instructions have a different YAML file to use. (This link to the GitHub repo is probably more stable than the link to the version-specific YAML file that's there.)

-- David Maze
Source: StackOverflow