拉图像Azure容器registry – Kubernetes

有没有人有任何build议如何从Azure容器registry中提取,同时在Azure容器服务(kubernetes)中运行?

我已经尝试了一个像下面这样的示例部署,但图像拉不合格:

kind: Deployment apiVersion: extensions/v1beta1 metadata: name: jenkins-master spec: replicas: 1 template: metadata: name: jenkins-master labels: name: jenkins-master spec: containers: - name: jenkins-master image: myregistry.azurecr.io/infrastructure/jenkins-master:1.0.0 imagePullPolicy: Always readinessProbe: tcpSocket: port: 8080 initialDelaySeconds: 20 timeoutSeconds: 5 ports: - name: jenkins-web containerPort: 8080 - name: jenkins-agent containerPort: 50000 

阅读了这个信息后,我得到了这个工作。

http://kubernetes.io/docs/user-guide/images/#specifying-imagepullsecrets-on-a-pod

所以首先创buildregistry访问键

 kubectl create secret docker-registry myregistrykey --docker-server=https://myregistry.azurecr.io --docker-username=ACR_USERNAME --docker-password=ACR_PASSWORD --docker-email=ANY_EMAIL_ADDRESS 

使用ACR地址的地址和USERNAME,PASSWORD和EMAIL地址的服务器地址replaceACR的admin用户的值。 注意:电子邮件地址可以是值。

然后在部署中,只需告诉kubernetes使用该键来拉取图像,如下所示:

 kind: Deployment apiVersion: extensions/v1beta1 metadata: name: jenkins-master spec: replicas: 1 template: metadata: name: jenkins-master labels: name: jenkins-master spec: containers: - name: jenkins-master image: myregistry.azurecr.io/infrastructure/jenkins-master:1.0.0 imagePullPolicy: Always readinessProbe: tcpSocket: port: 8080 initialDelaySeconds: 20 timeoutSeconds: 5 ports: - name: jenkins-web containerPort: 8080 - name: jenkins-agent containerPort: 50000 imagePullSecrets: - name: myregistrykey 

这是我们实际上变得更容易的事情。 当通过az cliconfigurationKubernets集群时,服务主体将以贡献者特权创build。 这将启用订阅中的任何Azure容器registry的请求。 有一个PR: https : //github.com/kubernetes/kubernetes/pull/40142被合并到Kubernetes的新部署中。 它不会在现有的kubernetes实例上工作。 史蒂夫