从私有dockerhub注册表中拉出docker镜像时Kubernetes中的ImagePullBackOff错误

问题描述 投票:2回答:2

我尝试使用Azure Devops构建CI / CD管道。我的目标是

  1. 构建一个docker Image将其上传到CI管道中Docker Hub中的私有docker存储库
  2. 将此映像部署到CD管道中的Azure Kubernetes集群

CI管道运作良好:enter image description here

图像被成功推送到dockerhub enter image description here

管道码头推送任务:

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

之后,我手动触发我的发布管道,它显示成功以及enter image description here

应用管道任务:

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

但是,当我在我的kubernetes仪表板上检查部署时,会弹出一条错误消息:enter image description here

无法提取图像“jastechgmbh / microservice-demo:38”:rpc错误:代码=未知desc =来自守护程序的错误响应:对jastechgmbh / microservice-demo执行拉取访问权限,存储库不存在或者可能需要“docker login”:拒绝:拒绝请求访问资源

我在CI和CD管道中使用相同的dockerhub服务连接。

enter image description here

我很乐意帮助你。

docker azure-devops azure-pipelines dockerhub azure-kubernetes
2个回答
2
投票

我相信此错误表明您的kubernetes群集无法访问docker注册表。您需要为此创建docker secret。像这样:

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

或者从命令行:

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/


1
投票

上面的答案是正确的,只需要添加你必须在你的部署上放置imagePullsecrets。阅读其他答案提供的链接,它会详细解释:

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

© www.soinside.com 2019 - 2024. All rights reserved.