如何解决如何使用Azure DevOps将图像从JFrog Artifactory部署到Azure Kubernetes服务
我使用Azure DevOps构建管道来构建并将docker映像推送到JFrog Artifactory。然后使用发行版定义中的Kubectl任务,使用下面的yaml文件将映像部署到Azure AKS环境中。
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: webapplication-jfrog-deployment
name: webapplication-jfrog-deployment
spec:
replicas: 2
selector:
matchLabels:
app: webapplication-jfrog
template:
metadata:
labels:
app: webapplication-jfrog
spec:
containers:
-
image: #{JFrog_Login_Server_Name}#/webapplication:#{Version}#
imagePullPolicy: Always
name: webapplication-jfrog
ports:
-
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: webapplication-jfrog-service
spec:
ports:
-
port: 80
selector:
app: webapplication-jfrog
type: LoadBalancer
部署上述yaml文件后,我在pod中收到以下错误:
无法提取图像“ xxxx-poc.jfrog.io/webapplication:xx”:rpc错误:代码=未知desc =来自守护程序的错误响应:获取https://xxxx-poc.jfrog.io/v2/webapplication/manifests/xx:未知:需要身份验证
从JFrog Artifactory将映像拉到Azure AKS环境时,发生此错误可能是身份验证问题。
所以,有人可以建议我如何将JFrog Artifactory中的映像部署到Azure Kubernetes服务中。
解决方法
对于任何私有注册表,您都需要创建一个docker-registry
秘密,并在使用imagePullSecrets
提取图像时指定该秘密。
- 创建秘密
kubectl create secret docker-registry artifactorycred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
- 在pod定义中指定秘密
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: artifactorycred
有关更多详细信息,请参见以下文档:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。