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


Краткое руководство: Создайте кластер 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.77.0 или более поздней. Найдите версию с помощью az --version команды. Сведения об установке или обновлении см. в разделе Install Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена там.
  • Если у вас несколько Azure подписок, выберите соответствующий идентификатор подписки для выставления счетов за ресурсы с помощью команды az account set.
  • Чтобы развернуть файл Bicep, необходимо иметь права на запись на создаваемые ресурсы и доступ ко всем операциям типа ресурса Майкрософт.Resources/deployments. Например, для создания виртуальной машины требуется Майкрософт.Compute/virtualMachines/write и разрешения Майкрософт.Resources/deployments/*. Чтобы увидеть список ролей и разрешений, см. раздел встроенные роли Azure.

Ограничения

  • Для системных узлов автоматического кластера AKS требуется развертывание в регионах Azure, которые поддерживают по крайней мере три зоны доступности, эфемерный диск операционной системы и Azure ОС Linux.
  • 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, northcentralus, northeurope, norwayeast, polandcentral, southafricanorth, southcentralus, southeastasia, spaincentral, swedencentral, switzerlandnorth, uaenorth, uksouth, westeurope, westus, westus2, westus3.
  • Автоматический кластер AKS имеет преднастроенный блокировка группы ресурсов узла, не позволяющий изменения в группе ресурсов MC_, предотвращая создание связей виртуальной сети в зоне Частная зона DNS по умолчанию. Для сценариев использования между виртуальными сетями или пользовательскими DNS воспользуйтесь настраиваемой сетью и частной DNS, следуя инструкции по созданию частного кластера Azure Kubernetes Service (AKS) в пользовательской виртуальной сети.

Это важно

AkS Automatic пытается динамически выбрать размер виртуальной машины для system пула узлов на основе емкости, доступной в подписке. Убедитесь, что подписка имеет квоту на 16 виртуальных ЦП любого из следующих размеров в регионе, где развертывается кластер: Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, Standard_DS12_v2, Standard_D4alds_v6, Standard_D4lds_v6 или Standard_D4alds_v5. Вы можете просматривать квоты для конкретных семейств виртуальных машин и отправлять запросы на увеличение квот на портале Azure. Если у вас есть дополнительные вопросы, ознакомьтесь с документацией по устранению неполадок.

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

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

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

az group create --name myResourceGroup --location eastus

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

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "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

Через несколько минут выполнение команды завершается и отображаются сведения о кластере в формате JSON.

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

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

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

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

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

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

  4. На вкладке Monitoring выберите нужные конфигурации мониторинга из Azure Monitor (Container Insights), Managed Prometheus, Grafana Dashboards, Container Network Monitoringability (ACNS) и оповещения, а затем выберите 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@2024-03-02-preview' = {
  name: clusterName
  location: location  
  sku: {
  name: 'Automatic'
  }
  properties: {
    agentPoolProfiles: [
      {
        name: 'systempool'
        mode: 'System'
  count: 3
      }
    ]
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Дополнительные сведения о ресурсе, определенном в файле Bicep, см. в справочнике Майкрософт.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 вашему пользователю назначаются встроенные роли для Служба Azure Kubernetes RBAC Cluster Admin.

  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-nodepool1-12345678-vmss000000   Ready    agent   2m26s   v1.28.5
    aks-nodepool1-12345678-vmss000001   Ready    agent   2m26s   v1.28.5
    aks-nodepool1-12345678-vmss000002   Ready    agent   2m26s   v1.28.5
    

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

Чтобы развернуть приложение, используйте файл манифеста для создания всех объектов, необходимых для запуска приложения 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. Если это первая развернутая рабочая нагрузка, может потребоваться несколько минут для автоматической подготовки узла для создания пула узлов для запуска модулей pod.

    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