Как развернуть образ из JFrog Artifactory в службу Azure Kubernetes с помощью Azure DevOps

Я создаю и отправляю образ докера в JFrog Artifactory с помощью конвейера сборки Azure DevOps. Затем с помощью приведенного ниже файла yaml разверните образ в среде Azure AKS с помощью задачи Kubectl в определении выпуска.

--- 
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 я получаю следующую ошибку в модулях:

Не удалось получить изображение xxxx-poc.jfrog.io/webapplication:xx: ошибка rpc: code = Unknown desc = Ошибка, ответ от демона: Get https://xxxx-poc.jfrog.io/v2/webapplication/manifest/xx: unknown: требуется аутентификация

Эта ошибка может быть связана с проверкой подлинности при извлечении изображения из JFrog Artifactory в среду Azure AKS.

Итак, может ли кто-нибудь подсказать мне, как развернуть образ из JFrog Artifactory в службу Azure Kubernetes.


person Pradeep    schedule 20.08.2020    source источник


Ответы (1)


Для любого частного реестра вам необходимо создать docker-registry секрет и указать его при извлечении изображений с помощью imagePullSecrets.

  1. Создайте секрет
kubectl create secret docker-registry artifactorycred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
  1. Укажите секрет в определении модуля
apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: artifactorycred

Дополнительную информацию см. В следующем документе:

person Faheem    schedule 20.08.2020