ImagePullBackOff error in Kubernetes while pulling docker images from private dockerhub registry

11,767

Solution 1

I believe this error indicates your kubernetes cluster doesnt have access to docker registry. You'd need to create docker secret for that. like so:

kubectl create secret generic regcred \
  --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
  --type=kubernetes.io/dockerconfigjson

or from command line:

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

Solution 2

Configure ACR integration for existing AKS clusters

az aks update -n myAKSClusterName -g myAKSResourceGroupName --attach-acr acr-name

https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration

Solved the issue for me

Share:
11,767
Admin
Author by

Admin

Updated on July 06, 2022

Comments

  • Admin
    Admin almost 2 years

    I try to build a CI/CD Pipeline with Azure Devops. My goal is to

    1. Build a docker Image an upload this to a private docker Respository in Dockerhub within the CI Pipeline

    2. Deploy this image to an Azure Kubernetes Cluster within the CD Pipeline

    The CI Pipeline works well: enter image description here

    The image is pushed successfully to dockerhub enter image description here

    The pipeline docker push task:

    steps:
    - task: Docker@1
      displayName: 'Push an image'
      inputs:
        containerregistrytype: 'Container Registry'
        dockerRegistryEndpoint: DockerHubConnection
        command: 'Push an image'
        imageName: 'jastechgmbh/microservice-demo:$(Build.BuildId)'
    

    After that I trigger my release pipeline manually an it shows success as well enter image description here

    The apply pipeline task:

    steps:
    - task: Kubernetes@0
      displayName: 'kubectl apply'
      inputs:
        kubernetesServiceConnection: MicroserviceTestClusterConnection
        command: apply
        useConfigurationFile: true
        configuration:   '$(System.DefaultWorkingDirectory)/_MicroservicePlayground-MavenCI/drop/deployment.azure.yaml'
        containerRegistryType: 'Container Registry'
        dockerRegistryConnection: DockerHubConnection
    

    But when I check the deployment on my kubernetes dashboard an error message pops up: enter image description here

    Failed to pull image "jastechgmbh/microservice-demo:38": rpc error: code = Unknown desc = Error response from daemon: pull access denied for jastechgmbh/microservice-demo, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

    I use the same dockerhub service connection in the CI & CD Pipeline.

    enter image description here

    I would be very happy about your help.

  • phillip voyle
    phillip voyle almost 5 years
    I'm using minikube, and had been using the second mechanism you list here, but for some reason it didn't work. The first one is good, and I now have a working minkube install. +1