Краткое руководство: Создайте кластер Azure Kubernetes Service (AKS) автоматизированного типа

Область применения: ✔️ AKS Automatic

Azure Kubernetes Service (AKS) Автоматический — это управляемая среда Kubernetes, которое автоматизирует настройку и операции кластера AKS и включает конфигурации лучших практик. AKS Automatic также включает [соглашение об уровне обслуживания о готовности Pod][azure-sla], которое гарантирует, что 99,9% квалифицированных операций по готовности Pod завершаются в течение 5 минут, обеспечивая надежную и самовосстанавливающуюся инфраструктуру для ваших приложений. Из этого краткого руководства вы узнаете, как:

  • Развертывание автоматического кластера AKS.
  • Запустите пример мультиконтейнерного приложения с группой микрослужб и веб-интерфейсов с имитацией сценария розничной торговли.

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

  • Azure CLI версии 2.86.0 или более поздней. Чтобы найти версию, выполните az --version команду. Если необходимо установить или обновить, см. раздел Install Azure CLI.
  • Если у вас несколько Azure подписок, выберите соответствующий идентификатор подписки для выставления счетов за ресурсы с помощью команды az account set.
  • Чтобы развернуть файл Bicep, необходимо иметь права на запись на создаваемые ресурсы и доступ ко всем операциям типа ресурса Microsoft.Resources/deployments. Например, для создания виртуальной машины требуется Microsoft.Compute/virtualMachines/write и разрешения Microsoft.Resources/deployments/*. Чтобы увидеть список ролей и разрешений, см. раздел встроенные роли Azure.

Это важно

Начиная с AKS 1.36, в новых кластерах AKS Automatic по умолчанию будет включен Kubernetes Gateway API через надстройку маршрутизации приложений вместо управляемого NGINX Ingress с надстройкой маршрутизации приложений из-за прекращения поддержки вышестоящего проекта Ingress NGINX.

Существующие автоматические кластеры не затрагиваются, но должны начать миграцию в API шлюза Kubernetes с помощью надстройки маршрутизации приложений.

Ограничения

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

  • AKS Automatic общедоступен в следующих регионах: australiaeast, austriaeast, belgiumcentral, brazilsouth, canadacentral, centralindia, centralus, chilecentral, denmarkeast, eastasia, eastus, eastus2, francecentral, germanywestcentral, indonesiacentral, israelcentral, italynorth, japaneast, japanwest, koreacentral, malaysiawest, mexicocentral, newzealandnorth, northeurope, norwayeast, polandcentral, southafricanorth, southcentralus, southeastasia, spaincentral, swedencentral, switzerlandnorth, uaenorth, uksouth, westeurope, westus2, westus3.
    • Новые автоматические кластеры AKS по умолчанию позволяют включить пулы узлов управляемой системы и LocalDNS. Нельзя создавать автоматические кластеры AKS без пулов узлов управляемой системы в любом регионе.
  • Автоматический кластер AKS имеет предварительно настроенную блокировку группы ресурсов узлов, которая не позволяет вносить изменения в группу ресурсов MC_, что препятствует созданию ссылок виртуальной сети в зоне Частная зона DNS по умолчанию. Для сценариев использования между виртуальными сетями или пользовательскими DNS воспользуйтесь настраиваемой сетью и частной DNS, следуя инструкции по созданию частного кластера Azure Kubernetes Service (AKS) в пользовательской виртуальной сети.
  • требуется Azure CLI версии 2.86.0 или более поздней. Чтобы найти версию, выполните az --version команду. Если необходимо установить или обновить, см. раздел Install Azure CLI.
  • Следующие расширения не поддерживаются:
  • Узлы Windows не поддерживаются.
  • Миграция из базового SKU AKS в автоматический номер SKU не поддерживается.
  • Миграции между автоматическими кластерами AKS без пулов управляемых системных узлов и автоматических кластеров AKS с пулами управляемых системных узлов не поддерживаются.

Создание группы ресурсов

Группа ресурсов Azure — это логическая группа, в которой Azure ресурсы развертываются и управляются.

Создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в регионе canadacentral:

az group create --name myResourceGroup --location canadacentral

Следующий пример выходных данных напоминает успешное создание группы ресурсов:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "canadacentral",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

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

Создайте автоматический кластер AKS, используя команду az aks create с параметром --sku, установленным на automatic. В следующем примере создается кластер с именем myAKSAutomaticCluster с управляемым Prometheus и включена интеграция Container Insights:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSAutomaticCluster \
    --sku automatic
    --enable-hosted-system

После завершения развертывания в выходных данных отображается свойство hostedSystemProfile, у которого свойство enabled имеет значение true. Для отображения hostedSystemProfile свойств можно также выполнить следующую команду:

az aks show \
  --resource-group myResourceGroup \
  --name myAKSAutomaticCluster \
  --query hostedSystemProfile
{
  "enabled": true,
  "nodeSubnetId": null,
  "systemNodeSubnetId": null
}

Создание кластера Automatic Kubernetes

  1. Чтобы создать автоматический кластер AKS, найдите и выберите службы Kubernetes. При этом вы перейдете на страницу Центра Kubernetes (предварительная версия).

  2. На странице Центра Kubernetes (предварительная версия) выберите "Создать>автоматический кластер Kubernetes".

     Снимок экрана: кнопка

  3. На вкладке "Основные сведения" заполните все обязательные поля (подписка, группа ресурсов, имя кластера Kubernetes и регион), а затем нажмите кнопку "Далее".

     Снимок экрана: вкладка

  4. На вкладке Monitoring выберите нужные конфигурации мониторинга из Azure Monitor (Container Insights), Managed Prometheus, Grafana Dashboards и Alerts, а затем выберите Next.

     Снимок экрана вкладки

  5. На вкладке Advanced выберите нужные расширенные конфигурации: приватный доступ, виртуальные сети Azure, управляемое удостоверение, безопасность сети контейнеров (ACNS) и пространства имен управляемого Kubernetes, а затем выберите Проверить и создать.

     Снимок экрана: вкладка

  6. Просмотрите конфигурации на вкладке "Проверка и создание ", а затем выберите "Создать ", чтобы развернуть автоматический кластер AKS.

  7. Начните с настройки вашего первого приложения из GitHub и настройте конвейер автоматического развертывания.

     Снимок экрана: вкладка

Проверить файл «Bicep»

Следующий файл Bicep определяет автоматический кластер AKS:

@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'

@description('The location of the managed cluster resource.')
param location string = resourceGroup().location

resource aks 'Microsoft.ContainerService/managedClusters@2026-02-01' ' = {
  name: clusterName
  location: location
  sku: {
    name: 'Automatic'
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Дополнительные сведения о ресурсе, определенном в файле Bicep, см. в справочнике Microsoft.ContainerService/managedClusters.

Разверните файл Bicep

  1. Сохраните файл Bicep как main.bicep на локальный компьютер.

    Это важно

    Файл Bicep задает параметр clusterName строке myAKSAutomaticCluster. Если вы хотите использовать другое имя кластера, обязательно обновите строку до предпочтительного имени кластера перед сохранением файла на компьютере.

  2. Для развертывания файла Bicep используйте команду [az deployment group create][az-deployment-group-create].

    az deployment group create --resource-group myResourceGroup --template-file main.bicep
    

    Создание кластера AKS займет несколько минут. Дождитесь успешного развертывания кластера, прежде чем перейти к следующему шагу.

Подключение к кластеру

Кластером Kubernetes можно управлять при помощи kubectl клиента командной строки Kubernetes. kubectl уже установлен, если вы используете Azure Cloud Shell. Вы можете установить kubectl локально с помощью az aks install-cli команды. Автоматические кластеры AKS настраиваются с помощью Microsoft Entra ID для управления доступом на основе ролей Kubernetes (RBAC).

Примечание.

При создании кластера с помощью Azure CLI вашему пользователю назначаются встроенные роли для .

  1. Настройте kubectl для подключения к вашему кластеру Kubernetes с помощью команды az aks get-credentials. Эта команда скачивает учетные данные и настраивает интерфейс командной строки Kubernetes для их использования.

    az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster
    
  2. Проверьте подключение к кластеру kubectl get с помощью команды. Эта команда возвращает список узлов кластера.

    kubectl get nodes
    

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

    To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
    

    После входа в систему в следующем примере выходных данных отображаются пулы узлов управляемой системы. Убедитесь, что состояние узла Готов.

    NAME                           STATUS   ROLES    AGE   VERSION
    aks-hostedpool-16652789-vms1   Ready    <none>   19m   v1.34.7
    aks-hostedpool-16652789-vms2   Ready    <none>   19m   v1.34.7
    aks-hostedpool-16652789-vms3   Ready    <none>   19m   v1.34.7
    aks-system-surge-zq4d2         Ready    <none>   19m   v1.34.7
    

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

Чтобы развернуть приложение, используйте файл манифеста для создания всех объектов, необходимых для запуска приложения AKS Store. Файл манифеста Kubernetes используется для определения требуемого состояния кластера, например, какие образы контейнеров должны запускаться. Манифест включает следующие деплойменты и службы Kubernetes:

Снимок экрана примера архитектуры Azure Store.

  • Интерфейс магазина: веб-приложение для пользователей для просмотра продуктов и размещения заказов.
  • Обслуживание продукта: отображает сведения о продукте.
  • Служба заказов: помещает заказы.
  • Rabbit MQ: система очередей сообщений для обработки заказов.

Примечание.

Не рекомендуется запускать контейнеры с сохранением состояния, такие как Rabbit MQ, без постоянного хранилища для продакшена. Они используются здесь для простоты, но мы рекомендуем использовать управляемые службы, такие как Azure Cosmos DB или Служебная шина Azure.

  1. Создайте пространство aks-store-demo имен для развертывания в него ресурсов Kubernetes.

    kubectl create ns aks-store-demo
    
  2. Разверните приложение с помощью команды kubectl apply в пространстве имен aks-store-demo. Файл YAML, определяющий развертывание, находится на GitHub.

    kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
    

    В следующем примере выходных данных показаны развертывания и службы:

    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
    ingress/store-front created
    

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

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

  1. Проверьте статус развернутых pod с помощью команды kubectl get pods. Прежде чем продолжить, убедитесь, что все pod Running. Если это первая рабочая нагрузка, которую вы развёртываете, то может пройти несколько минут, прежде чем автоматическое выделение узлов создаст пул узлов для запуска подов.

    kubectl get pods -n aks-store-demo
    
  2. Проверьте общедоступный IP-адрес для приложения store-front. Ход выполнения можно отслеживать с помощью команды kubectl get service с аргументом --watch.

    kubectl get ingress store-front -n aks-store-demo --watch
    

    Выходные данные ADDRESS для store-front службы изначально отображаются пустыми:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. После изменения АДРЕСА с пустого на фактический общедоступный IP-адрес используйте CTRL-C для остановки kubectl процесса наблюдения.

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

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. Откройте веб-браузер и перейдите к внешнему IP-адресу вашего ingress, чтобы увидеть работу приложения магазина Azure.

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

Удаление кластера

Если вы не планируете использовать учебник AKS, очистите ненужные ресурсы, чтобы избежать расходов Azure.

Удалите группу ресурсов, службу контейнеров и все связанные ресурсы с помощью az group delete команды.

az group delete --name myResourceGroup --yes --no-wait

Примечание.

Кластер AKS был создан с управляемой системой идентичностью, которая является идентичностью по умолчанию, используемой в этом кратком руководстве. Платформа управляет этим удостоверением, поэтому удалить его вручную не нужно.

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

Дополнительные сведения об автоматическом использовании AKS см. в статье Introduction to Azure Kubernetes Service (AKS) Automatic