я хочу создать конвейер выпуска azure devops, который создает образ докера и развертывает его в кластере aks.
сборка и развертывание в acr работают хорошо, но развертывание в aks не работает.
это результаты после запуска конвейера:
и это журналы ошибок:
2023-01-08T22:20:48.7666031Z ##[section]Starting: deploy
2023-01-08T22:20:48.7737773Z ==============================================================================
2023-01-08T22:20:48.7741356Z Task : Deploy to Kubernetes
2023-01-08T22:20:48.7745738Z Description : Use Kubernetes manifest files to deploy to clusters or even bake the manifest files to be used for deployments using Helm charts
2023-01-08T22:20:48.7750005Z Version : 0.212.0
2023-01-08T22:20:48.7752721Z Author : Microsoft Corporation
2023-01-08T22:20:48.7755489Z Help : https://aka.ms/azpipes-k8s-manifest-tsg
2023-01-08T22:20:48.7757618Z ==============================================================================
2023-01-08T22:20:49.2976400Z Downloading: https://storage.googleapis.com/kubernetes-release/release/stable.txt
2023-01-08T22:20:49.8627101Z Found tool in cache: kubectl 1.26.0 x64
2023-01-08T22:20:50.6940515Z ==============================================================================
2023-01-08T22:20:50.6942077Z Kubectl Client Version: v1.26.0
2023-01-08T22:20:50.6943172Z Kubectl Server Version: v1.23.12
2023-01-08T22:20:50.6944430Z ==============================================================================
2023-01-08T22:20:50.7161602Z [command]/azp/_work/_tool/kubectl/1.26.0/x64/kubectl apply -f /azp/_work/_temp/Deployment_acrdemo2ss-deployment_1673216450713,/azp/_work/_temp/Service_acrdemo2ss-loadbalancer-service_1673216450713 --namespace dev
2023-01-08T22:20:50.9679948Z Unable to connect to the server: dial tcp: lookup tfkcluster-dns-074e9373.hcp.canadacentral.azmk8s.io on 192.168.1.1:53: no such host
2023-01-08T22:20:50.9771688Z ##[error]Unable to connect to the server: dial tcp: lookup tfkcluster-dns-074e9373.hcp.canadacentral.azmk8s.io on 192.168.1.1:53: no such host
2023-01-08T22:20:50.9809463Z ##[section]Finishing: deploy
это мое сервисное подключение:
Не удается подключиться к серверу: наберите tcp: lookup xxxx on 192.168.1.1:53: такого хоста нет
Похоже, вы используете частный кластер (параметр «Частный кластер» включен при создании кластера AKS).
Kubectl
— это клиент управления kubernetes. Это внешний поставщик подключения для подключения к кластеру kubernetes. Мы не можем подключиться к частному кластеру извне.
Однако мы не можем отключить эту опцию после создания кластера. Нам нужно удалить кластер и создать новый с отключенной опцией «Private Cluster
».
В качестве альтернативы вы можете настроить другой локальный агент, который будет находиться в той же виртуальной сети, что и кластер, и иметь доступ к AKS и Azure Pipelines.
См. Варианты подключения к приватному кластеру
Конечная точка сервера API не имеет общедоступного IP-адреса. Для управления API сервер, вам нужно будет использовать виртуальную машину, которая имеет доступ к кластеру AKS Виртуальная сеть Azure (VNet). Есть несколько вариантов для установление сетевого подключения к частному кластеру.
- Создайте виртуальную машину в той же виртуальной сети Azure (VNet), что и кластер AKS.
- Используйте виртуальную машину в отдельной сети и настройте пиринг виртуальных сетей. См. раздел ниже для получения дополнительной информации об этой опции.
- Используйте Express Route или VPN-подключение.
- Используйте функцию вызова команды AKS.
- Используйте частное подключение к конечной точке.
Создать виртуальную машину в той же виртуальной сети, что и кластер AKS, проще всего. вариант. Express Route и VPN увеличивают расходы и требуют дополнительных сложность сети. Виртуальный пиринг сети требует планирования ваши сетевые диапазоны CIDR, чтобы гарантировать отсутствие перекрывающихся диапазонов.
Я попытался воспроизвести то же самое в своей среде, создав кластер AKS (общедоступный), конвейеры CI / CD, настроив собственный агент (ubuntu 20.04). Я не вижу проблем в своей среде при развертывании в кластере AKS. Итак, чтобы опубликовать в качестве ответа, чтобы помочь в дальнейшем, мне потребуется еще несколько подробностей. 1. Ваша среда настроена в частной сети или в общедоступной? 2. Виртуальная машина и AKS находятся в одной сети?