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


Краткое руководство. Создание автоматического кластера Службы Azure Kubernetes (AKS)

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

Служба Azure Kubernetes (AKS) Автоматически предоставляет самый простой управляемый интерфейс Kubernetes для разработчиков, инженеров DevOps и инженеров платформы. Идеально подходит для современных приложений и приложений с ИИ, AKS Automatic автоматизирует настройку и управление кластерами AKS и внедряет конфигурации в соответствии с лучшими практиками. Пользователи любого уровня навыков могут воспользоваться преимуществами безопасности, производительности и зависимости AKS Automatic для своих приложений. AKS Automatic также включает SLA готовности pod, которое гарантирует, что 99.9% операций по готовности pod завершаются в течение 5 минут, обеспечивая надежную и самовосстанавливающуюся инфраструктуру для ваших приложений.

Из этой краткой инструкции вы узнаете:

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

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

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

Ограничения

  • Для системных узлов автоматического кластера AKS требуется развертывание в регионах Azure, поддерживающих по крайней мере три зоны доступности, временный диск ОС и ОС Linux Azure.
  • Вы можете создавать только автоматические кластеры AKS в регионах, где общедоступна интеграция виртуальных сетей СЕРВЕРА API .

Это важно

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.

В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.

Создайте группу ресурсов с помощью команды az group create.

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 команду. В следующем примере создается кластер с именем myAKSAutomaticCluster с включенной интеграцией Managed Prometheus и Container Insights.

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

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

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

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

Примечание.

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

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

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

Проверьте подключение к кластеру 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-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

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

  1. Чтобы создать кластер AKS Automatic, найдите службы Kubernetes и выберите Automatic Kubernetes cluster в раскрывающемся списке.

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

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

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

  3. На вкладке "Мониторинг" выберите конфигурации мониторинга из Azure Monitor, Managed Prometheus, Grafana Dashboards, Container Network Observability (ACNS) и/или настройте оповещения. Включите Managed Grafana (необязательно), добавьте теги (необязательно) и перейдите к созданию кластера.

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

  4. На вкладке "Дополнительно" обновите параметры сети (необязательно), параметры управляемой идентификации (необязательно), параметры безопасности и управляемых пространств имен (необязательно) и перейдите к созданию кластера.

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

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

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

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

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

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

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

Проверьте подключение к кластеру 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-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

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

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

В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.

Создайте группу ресурсов с помощью команды az group create.

az group create --name myResourceGroup --location eastus

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

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

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

Этот файл Bicep определяет автоматизированный кластер AKS. Хотя в предварительной версии необходимо указать профиль пула агентов системы nodepool.

@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, см. в справочнике Microsoft.ContainerService/managedClusters.

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

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

    Это важно

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

  2. Разверните Bicep-файл с помощью Azure CLI.

    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 для управления доступом на основе ролей Kubernetes (RBAC).

Это важно

При создании кластера с помощью Bicep необходимо назначить одну из встроенных ролей, таких как Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin или Azure Kubernetes Service RBAC Cluster Admin, вашим пользователям. Роли назначаются в пределах действия в кластере или в определенном пространстве имен, например с использованием az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee [email protected]. Кроме того, убедитесь, что у пользователей есть встроенная роль Azure Kubernetes Service Cluster User, чтобы они могли выполнять az aks get-credentials, а затем получите kubeconfig вашего кластера AKS с помощью команды az aks get-credentials.

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

az aks get-credentials --resource-group myResourceGroup --name 

Проверьте подключение к кластеру 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-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

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

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

Снимок экрана: пример архитектуры Магазина Azure.

  • Интерфейс магазина: веб-приложение для пользователей для просмотра продуктов и размещения заказов.
  • Обслуживание продукта: отображает сведения о продукте.
  • Служба заказов: помещает заказы.
  • 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-адрес вашего входа, чтобы увидеть приложение Магазина Azure в действии.

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

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

Если вы не планируете использовать учебник AKS, очистите ненужные ресурсы, чтобы избежать расходов Azure. Выполните команду az group delete , чтобы удалить группу ресурсов, службу контейнеров и все связанные ресурсы.

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

Примечание.

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

Дальнейшие действия

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

Чтобы узнать больше об AKS Automatic, перейдите к обзору.