在我的Azure DevOps
中,通过“其他”选项(用户名和密码)添加了一个Docker Registry Service Connection
。
通过CI Pipeline
推送图像时,此服务连接在我的docker compose
中起作用。
但是在我的CD Pipeline
(发布)管道中,当我在Docker Registry Service Connection
的Secrets部分中添加Deploy to Kubernetes Task
时。
在Azure DevOps
中Deploy 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:未经授权: 需要验证]
如何解决此错误?
答案 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