6

Кто-нибудь есть какие-либо советы о том, как вытащить из Azure контейнера реестра во время работы в пределах контейнера службы Azure (kubernetes)Прицепного изображения 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 
+1

http://stackoverflow.com/questions/32726923/pulling-images-from-private-registry-in-kubernetes – 4c74356b41

+0

Спасибо за информацию выше! Используя это, у меня есть работа и публикация ответа ниже – eggsy84

ответ

10

Я получил эту работу после прочтения этой информации.

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

Таким образом, во-первых создать доступ ключа реестра

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 и имя пользователя, пароль и адрес электронной почты со значениями от пользователя администратора для ваш ACR. Примечание. Адрес электронной почты может быть значением.

Тогда в развертывании просто сказать 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 
2

Это то, что мы на самом деле легче. Когда вы предоставляете кластер Kubernets через az cli, главный участник службы создается с привилегиями вкладчика. Это позволит получать запросы на загрузку любого регистра Azure Container Registry в подписке. Был PR: https://github.com/kubernetes/kubernetes/pull/40142, который был объединен с новыми развертываниями Кубернетов. Он не будет работать на существующих экземплярах кубернетов. Steve