Azure Kubernetes服务:即使在CD管道中添加了ImagePullSecret,图像拉出错误(身份验证)

时间:2019-05-23 01:53:53

标签: azure kubernetes azure-devops azure-kubernetes azure-container-registry

在我的Azure DevOps中,通过“其他”选项(用户名和密码)添加了一个Docker Registry Service Connection

通过CI Pipeline推送图像时,此服务连接在我的docker compose中起作用。

但是在我的CD Pipeline(发布)管道中,当我在Docker Registry Service Connection的Secrets部分中添加Deploy to Kubernetes Task时。

Azure DevOpsDeploy to Kubernetes Task已成功处理。但是在群集中,来自我的Azure Container Registry的图像的广告连播显示以下错误:

  

无法提取图像“ xxx.azurecr.io/service.api:latest”:[RPC错误:   代码=未知desc =来自守护程序的错误响应:获取   https://xxx.azurecr.io/v2/service.api/manifests/latest:未经授权:   需要验证,rpc错误:代码=未知desc =错误   守护程序的响应:获取   https://xxx.azurecr.io/v2/service.api/manifests/latest:未经授权:   需要验证]

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

您需要配置可访问私有注册表的kubernetes(配置Azure Devops这样做并不重要,它不会将图像“推送”到kubernetes,它只是发出命令)。您可以按照this link进行操作。

简而言之,您需要执行以下操作:

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

,然后将ImagePullSecrets添加到您的广告连定义中:

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: regcred