У меня есть локальный кластер Kubernetes, я пытаюсь построить конвейер, который выполняет следующие шаги:
1 и 2 работают нормально, но 3 шага применения файла манифеста.yaml завершаются неудачно со следующими ошибками:
Трубопровод.yaml
trigger:
- none
resources:
- repo: self
variables:
# Docker Hub service connection established during pipeline creation
dockerHubServiceConnection: 'docker-registry-connection' ## Update with your Docker Hub service connection ID
imageRepository: '786786786raees/email1_monitoring' ## Update with your Docker Hub username and repository name
dockerfilePath: '$(Build.SourcesDirectory)/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 Docker Hub
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerHubServiceConnection)
tags: |
$(tag)
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)'
artifact: 'drop'
publishLocation: 'pipeline'
- stage: Deploy
displayName: Deploy to kubernetes
dependsOn: Build
jobs:
- job: Deploy
displayName: Deploy POds
pool:
vmImage: $(vmImageName)
steps:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: 'drop'
targetPath: '$(Pipeline.Workspace)/drop'
- task: KubernetesManifest@1
inputs:
action: 'deploy'
connectionType: 'kubernetesServiceConnection'
kubernetesServiceConnection: 'k8s_connection'
namespace: 'conn-devops'
manifests: '$(Pipeline.Workspace)/drop/manifest.yaml'
arguments: '--validate=false'
Я также создал пространство имен и учетную запись службы, упомянутые в файле yaml, и присвоил ему роли и привязки ролей, чего мне сейчас не хватает. У меня также есть подключение к службе с использованием учетной записи службы
Судя по предоставленной вами информации, вы используете агенты, размещенные в Microsoft, для запуска задания развертывания. Если на вашем локальном сервере применены некоторые правила брандмауэра, агенты, размещенные в Microsoft, могут не иметь доступа к серверу.
вы можете попытаться настроить Самостоятельный агент на своем сервере для запуска задания развертывания. Поскольку агент размещается на серверной машине, он может получить доступ к серверу Kubernetes.