Nasazení infrastruktury pro Ray a Kueue v AKS

V tomto článku nasadíte infrastrukturu potřebnou ke spouštění úloh Ray AI s Kueue na Azure Kubernetes Service (AKS). Modul Terraform zřídí cluster AKS s fondy uzlů GPU, nainstaluje operátor KubeRay a kontroler Kueue přes Helm, vytvoří Azure Blob Storage s předem připravenými datovými sadami a nakonfiguruje identitu úloh pro zabezpečený přístup.

Important

Opensourcový software je zmíněn v dokumentaci a ukázkách AKS. Software, které nasadíte, je vyloučeno z dohod o úrovni služeb AKS, omezené záruky a podpory Azure. Při používání open-source technologií spolu s AKS konzultujte dostupné možnosti podpory od příslušných komunit a správců projektů, abyste vytvořili plán.

Microsoft přebírá odpovědnost za vytváření balíčků s otevřeným zdrojovým kódem, které nasazujeme na AKS. Tato odpovědnost zahrnuje plnou správu procesu sestavení, skenování, podepisování, validace a hotfixů, spolu s kontrolou nad binárními soubory v kontejnerových obrazech. Další informace najdete v tématu Řízení zranitelností pro AKS a Podpora pro AKS a rozsah pokrytí.

Prerequisites

  • Předplatné služby Azure. Pokud žádné nemáte, vytvořte si bezplatný účet.
  • Azure CLI verze 2.70 nebo novější, ověřená pomocí az login. Pokud máte více předplatných, nastavte správné předplatné pomocí az account set --subscription <subscription-id>.
  • Terraform verze 1.6 nebo novější
  • kubectl verze 1.28 nebo novější. Nainstalujte pomocí az aks install-cli.
  • Python verze 3.10 nebo novější (vyžaduje se pro generování dat Aurora).
  • Kvóta GPU ve vaší cílové oblasti Azure Výchozí konfigurace zajišťuje uzel Standard_ND96amsr_A100_v4 (8× GPU A100 s pamětí 80 GB).

Klonování úložiště

Naklonujte úložiště Azure/AKS a přejděte do modulu infrastruktury:

git clone https://github.com/Azure/AKS
cd AKS/examples/kueue-and-ray-on-aks/1-infrastructure

Instalovat Pythonové závislosti

Krok nahrání dat Aurora vyžaduje balíčky Python. Před nasazením je nainstalujte:

pip install -r terraform/requirements-generator.txt

Kontrola kvóty GPU

Ověřte, že vaše předplatné má kvótu pro skladovou položku GPU ve vaší cílové oblasti. Nahraďte eastus2 upřednostňovanou oblastí:

LOCATION=<your-azure-region>
az vm list-usage --location "$LOCATION" --output table | grep -i "NDAMSv4_A100"

Note

Pokud nemáte kvótu GPU nebo chcete ověřit infrastrukturu bez GPU, nasaďte ji pomocí gpu_enabled=false:

terraform apply -var="subscription_id=<your-subscription-id>" -var="gpu_enabled=false"

Režim využívající pouze CPU je užitečný pro ověření infrastruktury a konfigurace front. Úlohy, které požadují GPU, zůstávají ve stavu Pending.

Nasazení pomocí Terraformu

Inicializace a použití modulu Terraform:

cd terraform
terraform init
terraform apply -var="subscription_id=<your-subscription-id>"

Modul Terraform vytvoří:

  • Cluster AKS s aktivovaným vydavatelem OIDC a identitou workloadu
  • Fond systémových uzlů a fond uzlů GPU (pokud gpu_enabled=true)
  • Operátor KubeRay a řadič Kueue (verze Helm z MCR)
  • DaemonSet pro monitorování GPU (pokud gpu_enabled=true)
  • účet služby Azure Blob Storage s kontejnery aurora a llm-pipeline
  • Uživatelem přiřazená spravovaná identita s rolí Přispěvatel dat objektů blob služby Storage
  • Přihlašovací údaje federované identity pro ray-workload ServiceAccount
  • Předem připravené datové sady (data Aurora WeatherBench2 a datová sada viggo NLG)

Úplnou konfiguraci modulu Terraform najdete v adresáři 1 infrastruktury v úložišti.

Připojení ke clusteru

Získejte přihlašovací údaje pro váš nový cluster AKS:

eval "$(terraform output -raw get_credentials_command)"

Ověření nasazení

Ověřte, že operátory běží a uzly jsou k dispozici:

  1. Ověřte operátor KubeRay:

    kubectl -n kuberay-system get pods
    

    Očekávaný výstup:

    NAME                                READY   STATUS    RESTARTS   AGE
    kuberay-operator-xxxxxxxxxx-xxxxx   1/1     Running   0          5m
    
  2. Ověřte kontroler Kueue:

    kubectl -n kueue-system get pods
    

    Očekávaný výstup:

    NAME                                            READY   STATUS    RESTARTS   AGE
    kueue-controller-manager-xxxxxxxxxx-xxxxx       1/1     Running   0          5m
    
  3. Ověřte uzly:

    kubectl get nodes
    

    Očekávaný výstup (s 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
    
  4. Ověření monitorování GPU (pouze v případech gpu_enabled=true):

    kubectl -n gpu-monitoring get daemonsets
    

    Očekávaný výstup:

    NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    gpu-monitoring-a100     1         1         1       1            1           <none>          5m
    

Vyčistěte zdroje

Odstranění všech Azure prostředků, které jste vytvořili pomocí tohoto modulu:

terraform destroy -var="subscription_id=<your-subscription-id>"

Další krok