Руководство. Развертывание приложения в Служба Azure Kubernetes (AKS)
Kubernetes предоставляет распределенную платформу для контейнерных приложений. Вы создаете и развертываете собственные приложения и службы в кластере Kubernetes и позволяет кластеру управлять доступностью и подключением.
В этом руководстве, часть 4 из семи, вы развернете пример приложения в кластере Kubernetes. Узнайте следующие темы:
- Обновите файл манифеста Kubernetes.
- Запустите приложение в Kubernetes.
- Тестирование приложения.
Совет
С помощью AKS можно использовать следующие подходы для управления конфигурацией:
GitOps: позволяет объявлениям состояния кластера автоматически применяться к кластеру. Чтобы узнать, как использовать GitOps для развертывания приложения с кластером AKS, ознакомьтесь с предварительными условиями для кластеров Служба Azure Kubernetes в руководстве по GitOps с Flux версии 2.
DevOps: позволяет создавать, тестировать и развертывать с помощью непрерывной интеграции (CI) и непрерывной доставки (CD). Примеры использования DevOps для развертывания приложения с кластером AKS см. в статье "Сборка и развертывание в AKS с помощью Azure Pipelines или GitHub Actions" для развертывания в Kubernetes.
Подготовка к работе
В предыдущих руководствах вы упаковали приложение в образ контейнера, отправьте образ в Реестр контейнеров Azure и создали кластер Kubernetes. Чтобы завершить работу с этим руководством, вам потребуется готовый файл манифеста aks-store-quickstart.yaml
Kubernetes. Этот файл был скачан в исходном коде приложения из руководства 1. Подготовка приложения для AKS.
Для этого руководства требуется Azure CLI версии 2.0.53 или более поздней. Проверьте версию с az --version
помощью . Чтобы выполнить установку или обновление, см. сведения в статье Установка Azure CLI.
Обновление файла манифеста
В этих руководствах экземпляр Реестр контейнеров Azure (ACR) хранит образы контейнеров для примера приложения. Чтобы развернуть приложение, необходимо обновить имена образов в файле манифеста Kubernetes, чтобы включить имя сервера входа ACR.
Получите адрес сервера входа с помощью
az acr list
команды и запроса для сервера входа.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
Убедитесь, что вы находитесь в клонируемом каталоге aks-store-demo , а затем откройте
aks-store-quickstart.yaml
файл манифеста с текстовым редактором.image
Обновите свойство для контейнеров, заменив ghcr.io/azure-samples именем сервера входа ACR.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
Сохранить и закрыть файл.
Выполнение приложения
Разверните приложение с помощью
kubectl apply
команды, которая анализирует файл манифеста и создает определенные объекты Kubernetes.kubectl apply -f aks-store-quickstart.yaml
В следующем примере выходных данных показано, что ресурсы успешно созданы в кластере AKS:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Проверьте успешное развертывание, просмотрев модули pod с
kubectl get pods
помощью команды.kubectl get pods
Тестирование приложения
При запуске приложения Служба Kubernetes предоставляет внешний интерфейс приложения в Интернете. Процесс создания может занять несколько минут.
Командная строка
Отслеживайте ход выполнения с помощью команды с
kubectl get service
аргументом--watch
.kubectl get service store-front --watch
EXTERNAL-IP
Изначально службаstore-front
отображается следующим образом<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
EXTERNAL-IP
При изменении адреса на<pending>
общедоступный IP-адрес используйтеCTRL-C
для остановкиkubectl
процесса наблюдения.В следующем примере выходных данных показан общедоступный IP-адрес, присвоенный службе.
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
Просмотрите приложение в действии, открыв веб-браузер и перейдя по внешнему IP-адресу службы:
http://<external-ip>
Если приложение не загружается, это может быть проблема авторизации с реестром образов. Чтобы просмотреть состояние контейнеров, используйте команду kubectl get pods
. Если вы не можете извлечь образы контейнеров, ознакомьтесь с Реестр контейнеров Azure проверки подлинности из Служба Azure Kubernetes.
Портал Azure
Перейдите к портал Azure, чтобы найти сведения о развертывании.
Перейдите к ресурсу кластера AKS.
В меню службы в разделе "Ресурсы Kubernetes" выберите службы и входящий трафик.
Скопируйте внешний IP-адрес, показанный в столбце
store-front
службы.Вставьте IP-адрес в браузер, чтобы посетить страницу магазина.
Очистка ресурсов
Так как вы проверили функциональные возможности приложения, теперь можно удалить кластер из приложения. Мы снова развернем приложение в следующем руководстве.
Остановите и удалите экземпляры контейнеров и ресурсы с помощью
kubectl delete
команды.kubectl delete -f aks-store-quickstart.yaml
Убедитесь, что все модули pod приложения удалены с помощью
kubectl get pods
команды.kubectl get pods
Следующие шаги
В этом руководстве вы развернули пример приложения Azure в кластере Kubernetes в AKS. Вы научились выполнять следующие задачи:
- Обновите файл манифеста Kubernetes.
- Запустите приложение в Kubernetes.
- Тестирование приложения.
В следующем руководстве вы узнаете, как использовать службы PaaS для рабочих нагрузок с отслеживанием состояния в Kubernetes.
Azure Kubernetes Service