Pull an Image from a Private Registry fails - ImagePullBackOff

7/30/2020

On our K8S Worker node with below command have created "secret" to pull images from our private (Nexus) registry.

kubectl create secret docker-registry regcred --docker-server=https://nexus-server/nexus/ --docker-username=admin --docker-password=password --docker-email=user@company.com

Created my-private-reg-pod.yaml in K8S Worker node, It has below.

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - name: private-reg-container
    image: nexus-server:4546/ubuntu-16:version-1
  imagePullSecrets:
  - name: regcred

Created pod with below command

kubectl create -f my-private-reg-pod.yaml

kubectl get pods

NAME       READY   STATUS             RESTARTS   AGE
test-pod   0/1     ImagePullBackOff   0          27m

kubectl describe pod test-pod

Events:
  Type     Reason     Age                   From                   Message
  ----     ------     ----                  ----                   -------
  Normal   Scheduled  <unknown>             default-scheduler      Successfully assigned default/test-pod to k8s-worker01
  Warning  Failed     26m (x6 over 28m)     kubelet, k8s-worker01  Error: ImagePullBackOff
  Normal   Pulling    26m (x4 over 28m)     kubelet, k8s-worker01  Pulling image "sonatype:4546/ubuntu-16:version-1"
  Warning  Failed     26m (x4 over 28m)     kubelet, k8s-worker01  Failed to pull image "nexus-server:4546/ubuntu-16:version-1": rpc error: code = Unknown desc = Error response from daemon: Get https://nexus-server.domain.com/nexus/v2/ubuntu-16/manifests/ver-1: no basic auth credentials
  Warning  Failed     26m (x4 over 28m)     kubelet, k8s-worker01  Error: ErrImagePull
  Normal   BackOff    3m9s (x111 over 28m)  kubelet, k8s-worker01  Back-off pulling image "nexus-server:4546/ubuntu-16:version-1"

On terminal nexus login works

docker login nexus-server:4546

Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

Something i am missing with this section?

-- user4948798
kubernetes
nexus3

1 Answer

7/31/2020

Since my docker login to nexus succeeded on terminal, So i have deleted my secret and created with kubectl create secret generic regcred \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson it worked.

-- user4948798
Source: StackOverflow