Поделиться через


Учебное руководство - Развертывание приложения в Службе Azure Kubernetes (AKS)

Kubernetes предоставляет распределенную платформу для контейнерных приложений. Вы создаете и развертываете собственные приложения и службы в кластере Kubernetes и позволяет кластеру управлять доступностью и подключением.

В этом руководстве описано, как развернуть пример приложения в кластере Kubernetes. Вы узнаете, как:

  • Обновите файл манифеста Kubernetes.
  • Запустите приложение в Kubernetes.
  • Тестирование приложения.

Совет

С помощью AKS можно использовать следующие подходы для управления конфигурацией:

Прежде чем начать

В предыдущих руководствах вы упаковали приложение в образ контейнера, отправьте образ в Реестр контейнеров Azure и создали кластер Kubernetes. Чтобы завершить это руководство, вам понадобится готовый файл манифеста aks-store-quickstart.yaml Kubernetes. Этот файл был загружен в исходном коде приложения из Учебника 1, Подготовка приложения для AKS.

Для этого руководства требуется Azure CLI версии 2.0.53 или более поздней. Проверьте вашу версию с az --version. Чтобы выполнить установку или обновление, см. сведения в статье Установка Azure CLI.

Обновление файла манифеста

В этих руководствах ваш экземпляр Реестра контейнеров Azure (ACR) хранит образы контейнеров для примерного приложения. Чтобы развернуть приложение, необходимо обновить имена образов в файле манифеста Kubernetes, добавив название сервера входа в ACR.

  1. Получите адрес сервера входа с помощью команды az acr list, чтобы выполнить запрос к вашему серверу входа.

    az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
    
  2. Убедитесь, что вы находитесь в клонируемом каталоге aks-store-demo , а затем откройте aks-store-quickstart.yaml файл манифеста с текстовым редактором.

  3. 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
    ...
    
  4. Сохранить и закрыть файл.

Выполнение приложения

  1. Разверните приложение с помощью 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
    
  2. Проверьте успешность развертывания, просмотрев поды с помощью команды kubectl get pods.

    kubectl get pods
    

Тестирование приложения

При запуске приложения Служба Kubernetes предоставляет внешний интерфейс приложения в Интернете. Этот процесс может занять несколько минут.

Командная строка

  1. Отслеживайте ход выполнения командой kubectl get service с аргументом --watch.

    kubectl get service store-front --watch
    

    Изначально для службы store-front отображается следующее: EXTERNAL-IP<pending>

    store-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s
    
  2. При изменении адреса EXTERNAL-IP с <pending> на общедоступный IP-адрес используйте CTRL-C для остановки процесса наблюдения kubectl.

    В следующем примере выходных данных показан общедоступный IP-адрес, присвоенный службе.

    store-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s
    
  3. Просмотрите приложение в действии, открыв веб-браузер и перейдя по внешнему IP-адресу службы: http://<external-ip>

    Снимок экрана: пример приложения AKS Store.

Если приложение не загружается, это может быть проблема с авторизацией в реестре образов. Чтобы просмотреть состояние контейнеров, используйте команду kubectl get pods. Если вы не можете извлечь образы контейнеров, см. Аутентификация с помощью Реестра контейнеров Azure через Службу Azure Kubernetes.

Портал Azure

Перейдите к портал Azure, чтобы найти сведения о развертывании.

  1. Перейдите к ресурсу кластера AKS.

  2. В меню службы в разделе "Ресурсы Kubernetes" выберите службы и входящий трафик.

  3. Скопируйте внешний IP-адрес, показанный в столбце для службы store-front.

  4. Вставьте IP-адрес в браузер, чтобы посетить страницу магазина.

    Снимок экрана: пример приложения AKS Store.

Очистка ресурсов

Так как вы проверили функциональные возможности приложения, теперь можно удалить кластер из приложения. Мы снова развернем приложение в следующем руководстве.

  1. Остановите и удалите экземпляры контейнеров и ресурсы с помощью kubectl delete команды.

    kubectl delete -f aks-store-quickstart.yaml
    
  2. Убедитесь, что все поды приложения удалены с помощью команды kubectl get pods.

    kubectl get pods
    

Следующие шаги

В этом руководстве вы развернули пример приложения Azure в кластере Kubernetes в AKS. Вы научились выполнять следующие задачи:

  • Обновите файл манифеста Kubernetes.
  • Запустите приложение в Kubernetes.
  • Тестирование приложения.

В следующем руководстве вы узнаете, как использовать сервисы PaaS для рабочих нагрузок с состоянием в Kubernetes.