use*_*746 4 azure kubernetes azure-devops azure-aks
我尝试使用 Azure Devops 构建 CI/CD 管道。我的目标是
构建一个 docker 镜像并将其上传到 CI 管道内 Dockerhub 中的私有 docker 存储库
将此映像部署到 CD 管道内的 Azure Kubernetes 群集
管道 docker push 任务:
steps:
- task: Docker@1
displayName: 'Push an image'
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: DockerHubConnection
command: 'Push an image'
imageName: 'jastechgmbh/microservice-demo:$(Build.BuildId)'
Run Code Online (Sandbox Code Playgroud)
应用管道任务:
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
Run Code Online (Sandbox Code Playgroud)
但是当我在 kubernetes 仪表板上检查部署时,会弹出一条错误消息:

无法拉取映像“jastechgmbh/microservice-demo:38”:rpc 错误:代码 = 未知 desc = 来自守护程序的错误响应:jastechgmbh/microservice-demo 的拉取访问被拒绝,存储库不存在或可能需要“docker 登录”:被拒绝: 请求访问资源被拒绝
我在 CI & CD 管道中使用相同的 dockerhub 服务连接。
我会很高兴你的帮助。
我相信这个错误表明您的 kubernetes 集群无权访问 docker 注册表。您需要为此创建 docker secret。像这样:
kubectl create secret generic regcred \
--from-file=.dockerconfigjson=<path/to/.docker/config.json> \
--type=kubernetes.io/dockerconfigjson
Run Code Online (Sandbox Code Playgroud)
或从命令行:
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
Run Code Online (Sandbox Code Playgroud)
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
| 归档时间: |
|
| 查看次数: |
10911 次 |
| 最近记录: |