Краткое руководство. Развертывание автоматического кластера Служба Azure Kubernetes (AKS) (предварительная версия)
Область применения: ✔️ AKS Automatic (предварительная версия)
Служба Azure Kubernetes (AKS) Automatic (предварительная версия) предоставляет самый простой управляемый интерфейс Kubernetes для разработчиков, инженеров DevOps и инженеров платформы. Идеально подходит для современных приложений ИИ, AKS Automatic автоматизирует настройку и операции кластера AKS и внедряет конфигурации рекомендаций. Пользователи любого уровня навыков могут воспользоваться преимуществами безопасности, производительности и зависимости AKS Automatic для своих приложений.
Из этого краткого руководства вы узнаете:
- Развертывание автоматического кластера AKS.
- Запустите пример мультиконтейнерного приложения с группой микрослужб и веб-интерфейсов с имитацией сценария розничной торговли.
Подготовка к работе
В этом руководстве предполагается, что у вас есть некоторое представление о функциях Kubernetes. Дополнительные сведения см. в статье Ключевые концепции Kubernetes для службы Azure Kubernetes (AKS).
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Для этой статьи требуется версия 2.57.0 или более поздняя версия Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена там.
Для этой статьи требуется
aks-preview
расширение Azure CLI версии 3.0.0b13 или более поздней.Если у вас несколько подписок Azure, выберите соответствующий идентификатор подписки, в котором необходимо выставлять счета за ресурсы с помощью команды az account set .
Зарегистрируйте функцию в подписке
AutomaticSKUPreview
Azure.Удостоверение, создающего кластер, также должно иметь следующие разрешения для подписки:
Microsoft.Authorization/policyAssignments/write
Microsoft.Authorization/policyAssignments/read
Внимание
Убедитесь, что у вашей подписки есть квота на 24 виртуальных ЦП Standard_DS4_v2 виртуальной машины для региона, в котором выполняется развертывание кластера. Вы можете просматривать квоты для определенных семейств виртуальных машин и отправлять запросы на увеличение квоты с помощью портал Azure. PNG
- Чтобы развернуть Bicep-файл, необходимо написать доступ к ресурсам, создаваемым и доступом ко всем операциям с типом
Microsoft.Resources/deployments
ресурса. Например, для создания виртуальной машины требуютсяMicrosoft.Compute/virtualMachines/write
иMicrosoft.Resources/deployments/*
разрешения. Список ролей и разрешений см. в статье Встроенные роли Azure.
Установка расширения Azure CLI для aks-preview
Внимание
Предварительные версии функций AKS доступны на уровне самообслуживания. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS предоставляются с частичной клиентской поддержкой по мере возможности. Следовательно, эти функции не предназначены для использования в рабочей среде. Дополнительные сведения доступны в следующих статьях поддержки.
Чтобы установить расширение aks-preview, выполните следующую команду:
az extension add --name aks-preview
Выполните следующую команду, чтобы обновить до последней версии выпущенного расширения:
az extension update --name aks-preview
Регистрация флагов компонентов
Чтобы использовать AKS Automatic в предварительной версии, необходимо зарегистрировать флаги компонентов для других необходимых функций. Зарегистрируйте следующие флаги с помощью команды az feature register .
az feature register --namespace Microsoft.ContainerService --name EnableAPIServerVnetIntegrationPreview
az feature register --namespace Microsoft.ContainerService --name NRGLockdownPreview
az feature register --namespace Microsoft.ContainerService --name SafeguardsPreview
az feature register --namespace Microsoft.ContainerService --name NodeAutoProvisioningPreview
az feature register --namespace Microsoft.ContainerService --name DisableSSHPreview
az feature register --namespace Microsoft.ContainerService --name AutomaticSKUPreview
Проверьте состояние регистрации с помощью команды az feature show . Для отображения состояния зарегистрировано несколько минут:
az feature show --namespace Microsoft.ContainerService --name AutomaticSKUPreview
Когда состояние отражает зарегистрировано, обновите регистрацию поставщика ресурсов Microsoft.ContainerService с помощью команды az provider register:
az provider register --namespace Microsoft.ContainerService
Создание или изменение группы ресурсов
Группа ресурсов 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. Если вы используете Azure Cloud Shell, kubectl
уже установлен. Чтобы установить 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-default-f8vj2 Ready agent 2m26s v1.28.5
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
Создание автоматического кластера Kubernetes
Чтобы создать автоматический кластер AKS, найдите службы Kubernetes и выберите кластер Automatic Kubernetes в раскрывающемся списке.
На вкладке "Основы" заполните все обязательные поля, необходимые для начала работы: подписка, группа ресурсов, имя кластера и регион
Если предварительные требования не выполнены, и для подписки требуется регистрация флагов предварительной версии, в поле "Подписка" появится ошибка:
На вкладке "Мониторинг" выберите конфигурации мониторинга из Azure Monitor, Managed Prometheus, Managed Grafana и (или) настройте оповещения. Добавьте теги (необязательно) и перейдите к созданию кластера.
Начните с настройки первого приложения из GitHub и настройте конвейер автоматического развертывания.
Подключение к кластеру
Кластером Kubernetes можно управлять при помощи kubectl клиента командной строки Kubernetes. Если вы используете Azure Cloud Shell, kubectl
уже установлен. Чтобы установить 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-default-f8vj2 Ready agent 2m26s v1.28.5
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'
tier: 'Standard'
}
properties: {
agentPoolProfiles: [
{
name: 'systempool'
count: 3
vmSize: 'Standard_DS4_v2'
osType: 'Linux'
mode: 'System'
}
]
}
identity: {
type: 'SystemAssigned'
}
}
Дополнительные сведения о ресурсе, определенном в файле Bicep, см. в справочнике по Microsoft.ContainerService/managedClusters .
Развертывание BICEP-файла
Сохраните файл Bicep с именем main.bicep на локальном компьютере.
Внимание
Файл Bicep задает
clusterName
параметр строке myAKSAutomaticCluster. Если вы хотите использовать другое имя кластера, обязательно обновите строку до предпочтительного имени кластера перед сохранением файла на компьютере.Разверните Bicep-файл с помощью Azure CLI.
az deployment group create --resource-group myResourceGroup --template-file main.bicep
Создание кластера AKS займет несколько минут. Дождитесь успешного развертывания кластера, прежде чем перейти к следующему шагу.
Подключение к кластеру
Кластером Kubernetes можно управлять при помощи kubectl клиента командной строки Kubernetes. Если вы используете Azure Cloud Shell, kubectl
уже установлен. Чтобы установить 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
пользователям, в пределах кластера или определенного пространства имен. Кроме того, убедитесь, что у пользователей есть 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-default-f8vj2 Ready agent 2m26s v1.28.5
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:
- Интерфейс магазина: веб-приложение для пользователей для просмотра продуктов и размещения заказов.
- Служба продуктов: отображает сведения о продукте.
- Служба заказов: помещает заказы.
- Rabbit MQ: очередь сообщений для очереди заказов.
Примечание.
Не рекомендуется запускать контейнеры с отслеживанием состояния, такие как Rabbit MQ, без постоянного хранения для рабочей среды. Они используются здесь для простоты, но мы рекомендуем использовать управляемые службы, такие как Azure Cosmos DB или Служебная шина Azure.
Создайте пространство
aks-store-demo
имен для развертывания ресурсов Kubernetes в.kubectl create ns aks-store-demo
Разверните приложение с помощью команды kubectl применить команду в
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 предоставляет внешний интерфейс приложения в Интернете. Процесс создания может занять несколько минут.
Проверьте состояние развернутых модулей pod с помощью команды kubectl get pods . Прежде чем продолжить, убедитесь, что все модули pod находятся
Running
в процессе. Если это первая развернутая рабочая нагрузка, может потребоваться несколько минут для автоматической подготовки узла для создания пула узлов для запуска модулей pod.kubectl get pods -n aks-store-demo
Проверьте общедоступный 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
После изменения АДРЕСА с пустого на фактический общедоступный IP-адрес используйте
CTRL-C
для остановкиkubectl
процесса наблюдения.В следующем примере выходных данных показан допустимый общедоступный IP-адрес, назначенный службе:
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12m
Откройте веб-браузер на внешний IP-адрес входящего трафика, чтобы увидеть приложение Магазина Azure в действии.
Удаление кластера
Если вы не планируете использовать учебник AKS, очистите ненужные ресурсы, чтобы избежать расходов Azure. Выполните команду az group delete, чтобы удалить группу ресурсов, службу контейнеров и все связанные ресурсы.
az group delete --name myResourceGroup --yes --no-wait
Примечание.
Кластер AKS был создан с управляемым удостоверением, назначенным системой, который является параметром удостоверения по умолчанию, используемым в этом кратком руководстве. Платформа управляет этим удостоверением, поэтому удалить его вручную не нужно.
Следующие шаги
В этом кратком руководстве вы развернули кластер Kubernetes с помощью AKS Automatic , а затем развернули в нем простое многоконтейнерное приложение. Этот пример приложения предназначен только для демонстрационных целей и не представляет все рекомендации для приложений Kubernetes. Рекомендации по созданию полных решений с помощью AKS для рабочей среды см . в руководстве по решению AKS.
Чтобы узнать больше об AKS Automatic, перейдите к обзору.
Azure Kubernetes Service