【发布时间】:2020-10-07 00:15:15
【问题描述】:
我使用 Azure Devops 创建了一个部署管道,通过它我正在构建一个映像并将其推送到 Azure 容器注册表。 在下一步中,我将从 ACR 部署到 AKS 集群,该集群是我使用以下命令创建并附加到 ACR 的: az aks create -n HealthCareAKSCluster -g AKSCICDRG --generate-ssh-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'
即使部署步骤运行良好,但是当我在 AKS 集群中执行“kubectl get pods”时,我得到的 pod 状态为 ImagePullBackOff 或 ErrImagePull。 当我执行“kubectl describe pod”时,我收到以下消息:
无法提取图像“患者服务”:rpc 错误:代码 = 未知描述 = 来自守护进程的错误响应:对患者服务的拉取访问被拒绝,存储库不存在或可能需要“docker login”:拒绝: 请求的资源访问被拒绝
请帮助我如何部署正确的图像。
【问题讨论】:
-
请分享您的 patientservice.yaml 文件。
标签: azure azure-devops azure-aks