Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описано, как развернуть инфраструктуру, необходимую для запуска рабочих нагрузок ИИ Ray с помощью Kueue на Azure Kubernetes Service (AKS). Модуль Terraform развертывает кластер AKS с пулами GPU-узлов, устанавливает оператор KubeRay и контроллер Kueue через Helm, создает Хранилище BLOB-объектов Azure с предварительно загруженными наборами данных и настраивает идентификатор рабочей нагрузки для безопасного доступа.
Important
Программное обеспечение с открытым кодом упоминается во всей документации и примерах AKS. Программное обеспечение, которое вы развертываете, не подпадает под действие соглашений об уровне обслуживания AKS, ограниченной гарантии и поддержки Azure. При использовании технологии с открытым исходным кодом вместе с AKS ознакомьтесь с вариантами поддержки, доступными от соответствующих сообществ и обслуживающих проектов для разработки плана.
Корпорация Майкрософт несет ответственность за создание пакетов с открытым кодом, которые мы развертываем в AKS. Эта ответственность включает полное управление процессами сборки, сканирования, подписывания, проверки и исправления ошибок, а также контроль над двоичными файлами в образах контейнеров. Для получения дополнительной информации см. Управление уязвимостями в AKS и Покрытие поддержки AKS.
Предварительные условия
- Подписка на Azure. Если ее нет, создайте бесплатную учетную запись.
-
Azure CLI версии 2.70 или более поздней версии, с проверкой подлинности через
az login. Если у вас несколько подписок, выберите нужную с помощьюaz account set --subscription <subscription-id>. - Terraform версии 1.6 или более поздней.
-
kubectl версии 1.28 или более поздней. Установите с помощью
az aks install-cli. - Python версии 3.10 или более поздней (требуется для создания данных Аврора).
- Квота GPU в целевом Azure регионе. Конфигурация по умолчанию развёртывает узел
Standard_ND96amsr_A100_v4(8×A100, 80 ГБ графической памяти на GPU).
Клонирование репозитория
Клонируйте репозиторий Azure/AKS и перейдите к модулю инфраструктуры:
git clone https://github.com/Azure/AKS
cd AKS/examples/kueue-and-ray-on-aks/1-infrastructure
Установка зависимостей Python
Шаг отправки данных Aurora требует Python пакетов. Установите их перед развертыванием:
pip install -r terraform/requirements-generator.txt
Проверка квоты GPU
Убедитесь, что у вашей подписки есть квота для SKU GPU в целевом регионе. Замените eastus2 предпочитаемым регионом:
LOCATION=<your-azure-region>
az vm list-usage --location "$LOCATION" --output table | grep -i "NDAMSv4_A100"
Note
Если у вас нет квоты GPU или требуется проверить инфраструктуру без gpu, разверните с помощью gpu_enabled=false:
terraform apply -var="subscription_id=<your-subscription-id>" -var="gpu_enabled=false"
Режим только с использованием процессора полезен для проверки конфигурации инфраструктуры и очереди. Рабочие нагрузки, запрашивающие графические процессоры, остаются в состоянии Pending.
Развертывание с помощью Terraform
Инициализировать и применить модуль Terraform:
cd terraform
terraform init
terraform apply -var="subscription_id=<your-subscription-id>"
Модуль Terraform создает:
- Кластер AKS с включенным издателем OIDC и удостоверением рабочей нагрузки
- Пул системных узлов и пул узлов GPU (когда
gpu_enabled=true) - Оператор KubeRay и контроллер Kueue (релизы Helm из MCR)
- DaemonSet для мониторинга GPU (когда
gpu_enabled=true) - учетная запись Хранилище BLOB-объектов Azure с контейнерами
auroraиllm-pipeline - Управляемая идентификация, назначаемая пользователем, с ролью участника данных BLOB-объектов хранилища
- Учетные данные федеративной идентификации для
ray-workloadServiceAccount - Предварительно подготовленные наборы данных (данные Aurora WeatherBench2 и набор данных viggo NLG)
Полную конфигурацию модуля Terraform см. в каталоге 1-infrastructure в репозитории.
Подключение к кластеру
Получите учетные данные для нового кластера AKS:
eval "$(terraform output -raw get_credentials_command)"
Проверка развертывания
Убедитесь, что операторы запущены и узлы доступны:
Проверьте оператор KubeRay:
kubectl -n kuberay-system get podsОжидаемые выходные данные:
NAME READY STATUS RESTARTS AGE kuberay-operator-xxxxxxxxxx-xxxxx 1/1 Running 0 5mПроверьте контроллер Kueue:
kubectl -n kueue-system get podsОжидаемые выходные данные:
NAME READY STATUS RESTARTS AGE kueue-controller-manager-xxxxxxxxxx-xxxxx 1/1 Running 0 5mПроверьте узлы:
kubectl get nodesОжидаемые выходные данные (с
gpu_enabled=true):NAME STATUS ROLES AGE VERSION aks-gpupool-xxxxxxxx-vmssxxxxxx Ready <none> 5m v1.35.x aks-system-xxxxxxxx-vmssxxxxxx Ready <none> 10m v1.35.x aks-system-xxxxxxxx-vmssxxxxxx Ready <none> 10m v1.35.xПроверьте мониторинг GPU (только если
gpu_enabled=true):kubectl -n gpu-monitoring get daemonsetsОжидаемые выходные данные:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE gpu-monitoring-a100 1 1 1 1 1 <none> 5m
Очистите ресурсы
Чтобы удалить все ресурсы Azure, созданные с помощью этого модуля:
terraform destroy -var="subscription_id=<your-subscription-id>"