Azure Развернутый образ задачи Devops kubectl имеет статус ErrImagePull / ImagePullBackOff - PullRequest
1 голос
/ 17 июня 2020

Я создал конвейер развертывания, используя Azure Devops, с помощью которого я создаю и отправляю образ в Azure Реестр контейнеров. На следующем этапе я выполняю развертывание из ACR в кластер AKS, который я создал и подключил к ACR, используя следующую команду: az aks create -n HealthCareAKSCluster -g AKSCICDRG --generate-s sh -keys --attach-acr HealthCareAKSCICDACR Ниже приведен мой код yaml:

# Docker
# Build and push an image to Azure Container Registry
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker

trigger:
- master

resources:
- repo: self

variables:
  # Container registry service connection established during pipeline creation
  dockerRegistryServiceConnection: 'XXXXXXXXXX'
  imageRepository: 'patientservice'
  containerRegistry: 'healthcareakscicdacr.azurecr.io'
  dockerfilePath: './PatientService/Dockerfile'
  tag: '$(Build.BuildId)'

  # Agent VM image name
  vmImageName: 'ubuntu-latest'

stages:
- stage: Build
  displayName: Build and push stage
  jobs:  
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: Docker@2
      displayName: Build and push an image to container registry
      inputs:
        command: buildAndPush
        repository: $(imageRepository)
        dockerfile: $(dockerfilePath)
        containerRegistry: $(dockerRegistryServiceConnection)
        tags: |
          $(tag)

- stage: Deploy
  displayName: Deploy
  jobs:  
  - job: Deploy
    displayName: Deploy
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: Kubernetes@1
      displayName: Deploy an image to AKS
      inputs:
        connectionType: 'Azure Resource Manager'
        azureSubscriptionEndpoint: 'XXXXXXX'
        azureResourceGroup: 'AKSCICDRG'
        kubernetesCluster: 'HealthCareAKSCluster'
        command: 'apply'
        arguments: '-f patientservice.yaml'
        secretType: 'dockerRegistry'
        containerRegistryType: 'Azure Container Registry'

Изображение успешно отправляется в ACR, и этап сборки выполняется нормально. enter image description here

Даже этап развертывания выполняется нормально, но когда я выполняю «kubectl get pods» в моем кластере AKS, я получаю статус модуля как ImagePullBackOff или ErrImagePull. Когда я сделал «kubectl description pod», я получаю следующее сообщение:

Не удалось получить изображение «Patientservice»: rp c error: code = Unknown desc = Ошибка ответа от демона: доступ по запросу отказано для обслуживания пациентов, репозиторий не существует или может потребовать 'docker login': denied: запрошенный доступ к ресурсу запрещен

Пожалуйста, помогите, как мне развернуть правильный образ.

1 Ответ

0 голосов
/ 17 июня 2020

Проблема была в файле Patientservice.yaml. Я не заметил этого. Раньше у образа было только имя службы. Я добавил к образу в Patientservice.yaml следующее:

image: healthcareakscicdacr.azurecr.io/patientservice:latest

Развертывание работало нормально.

...