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

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

Пример приложения можно развернуть двумя способами:

  • Развертывайте напрямую в кластер AKS со своей рабочей станции.
  • Развертывайте с помощью автоматизированных конвейеров развертывания. В Azure можно использовать следующее:

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

  • Обновите файл манифеста Kubernetes.
  • Разверните приложение в Kubernetes.
  • Тестирование приложения.
  • Просматривайте сведения о работоспособности приложения, журналы, метрики и состав в приложении AKS Desktop.

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

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

В этом руководстве показано, как создавать и обновлять платные ресурсы, такие как сервисы типа LoadBalancer. Используйте удостоверение с разрешениями для развертывания рабочих нагрузок в AKS и чтения ресурсов кластера.

Для работы с этим руководством требуется установка рабочего стола AKS.

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

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

  1. Убедитесь, что вы находитесь в клонируемом каталоге aks-store-demo , а затем откройте aks-store-quickstart.yaml файл манифеста с текстовым редактором.

  2. image Обновите свойство для контейнеров, заменив ghcr.io/azure-samples именем сервера входа ACR.

    containers:
    ...
    - name: order-service
      image: <acrName>.azurecr.io/aks-store-demo/order-service:1.0
    ...
    - name: product-service
      image: <acrName>.azurecr.io/aks-store-demo/product-service:1.0
    ...
    - name: store-front
      image: <acrName>.azurecr.io/aks-store-demo/store-front:1.0
    ...
    

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

Развертывайте приложение и управляйте им с помощью AKS Desktop

Рабочий стол AKS — это портал разработчика, ориентированный на приложения, для Azure Kubernetes Service (AKS) который упрощает развертывание и управление приложениями, не требуя глубокого опыта Kubernetes.

Регистрация кластера на рабочем столе AKS

  1. Убедитесь, что вы вошли на рабочий стол AKS с той же учетной записью, которая имеет доступ к кластеру AKS. После входа выберите "Добавить из подписки Azure".
  2. Введите имя подписки Azure, если у вас несколько. (Кроме того, щелкните стрелку, чтобы открыть раскрывающийся список, а затем выберите подписку Azure.)
  3. Выберите кластер и нажмите кнопку "Регистрация кластера".

Продолжайте, когда состояние кластера отображается как подключенное на рабочем столе AKS.

Видео, демонстрирующее, как добавить кластер в настольное приложение AKS.

Создание управляемого проекта на рабочем столе AKS

  1. В приложении AKS Desktop перейдите на вкладку Проекты и выберите Создать новый управляемый проект.

  2. Настройте следующие параметры проекта:

    • Основы:
      • Имя проекта: например, my-dev-frontend
      • Подписка: <your-subscription-name>
      • Кластер: <your-cluster-name>

    Замечание

    При настройке подписки Azure и кластера AKS на рабочем столе AKS проверяется наличие требуемой поддержки кластеров и функций подписки.

    • Политики сети. Вы можете оставить параметры по умолчанию для этого краткого руководства или обновить их по мере необходимости.

      • Чтобы сделать приложение общедоступным, измените Ingress на Allow all traffic.
    • Квота вычислений. Задайте значения для тестового приложения. Снимок экрана: установка значений квоты вычислений.

    • Access: добавьте кого-то или удалите запись, удалив элемент строки.

  3. В разделе "Проверка" проверьте параметры проекта и нажмите кнопку "Создать проект".

    Снимок экрана: создание проекта на рабочем столе AKS.

Развертывание приложения

  1. Укажите имя приложения и нажмите кнопку "Создать приложение".

    Снимок экрана создания нового приложения на рабочем столе AKS.

  2. Выберите источник для приложения. В этом примере выберите Kubernetes YAML>Next. Снимок экрана, на котором показан выбор источника приложения, выберите YamL Kubernetes.

  3. Откройте aks-store-quickstart.yaml, скопируйте и вставьте его содержимое в редактор, а затем нажмите кнопку "Далее". Снимок экрана: редактор YAML с скопированным и вставленным YAML.

  4. Просмотрите созданные ресурсы, а затем выберите Развернуть и Закрыть. Снимок экрана, на котором показана сводка «Проверка и развертывание»; выберите «Развернуть» и «Закрыть».

  5. Для развертывания ресурсов может потребоваться несколько минут. В это время статус проекта может отображаться как Degraded, пока кластер масштабируется.

  6. Проверьте состояние ресурсов приложения, выбрав "Ресурсы " и " Рабочие нагрузки".

    Снимок экрана: вкладка Вы можете принудительно обновить экран, выбрав пункт меню "Навигация> поперезагрузке" в верхнем окне.

  7. Выберите отдельные ресурсы рабочей нагрузки, чтобы просмотреть их подробности и события.

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

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

Рабочий стол AKS

  1. Получите общедоступный IP-адрес в Ресурс>Сеть>Служба: store-front>Внешний IP-адрес. Снимок экрана: получение общедоступного IP-адреса для приложения.

  2. Изучите приложение на рабочем столе AKS, например просмотр журналов и метрик. Дополнительные сведения см. в обзоре рабочего стола AKS.

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

  1. Отслеживайте ход выполнения командой 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
    
  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.

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

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

Рабочий стол AKS

Замечание

Если вы хотите перейти к следующему шагу руководства, не удаляйте настольный проект AKS.

Если закончите, щелкните значок "Удалить ". В сообщении подтверждения выберите "Также удалить пространство имен". Чтобы удалить проект, щелкните значок корзины

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

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

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

    kubectl get pods
    

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

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

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

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