Infrastruktúra üzembe helyezése Ray és Kueue számára az AKS-en

Ebben a cikkben telepíti a Ray AI-munkaterhelések Kueue-val, az Azure Kubernetes Service-en (AKS) való futtatásához szükséges infrastruktúrát. A Terraform modul kiépít egy AKS-fürtöt GPU-csomópontkészletekkel, telepíti a KubeRay operátort és a Kueue vezérlőt a Helmen keresztül, Azure Blob Storage hoz létre előre előkészített adatkészletekkel, és konfigurálja a számítási feladat identitását a biztonságos hozzáférés érdekében.

Fontos

A nyílt forráskódú szoftverek az AKS dokumentációjában és mintáiban szerepelnek. Az Ön által üzembe helyezett szoftverek nem tartoznak az AKS szolgáltatási szintű szerződéseibe, a korlátozott jótállásba és az Azure-támogatásba. Mivel nyílt forráskódú technológiát használ az AKS mellett, tekintse meg a megfelelő közösségek és projektfenntartók által rendelkezésre álló támogatási lehetőségeket a terv kidolgozásához.

A Microsoft felelősséget vállal az AKS-en üzembe helyezhető nyílt forráskódú csomagok elkészítéséért. Ez a felelősség magában foglalja a buildelési, vizsgálati, aláírási, érvényesítési és gyorsjavítási folyamat teljes tulajdonjogát, valamint a tárolólemezképek bináris fájljainak vezérlését. További információért lásd: Az AKS sebezhetőség-kezelése és AKS támogatás lefedettsége.

Prerequisites

  • Azure-előfizetés. Ha még nincs előfizetése, hozzon létre egy ingyenes fiókot.
  • Azure CLI 2.70-es vagy újabb verzió, hitelesítése: az login. Ha több előfizetéssel rendelkezik, állítsa be a megfelelőt a következővel az account set --subscription <subscription-id>: .
  • Terraform 1.6-os vagy újabb verzió.
  • kubectl 1.28-es vagy újabb verzió. Telepítsd a az aks install-cli-val.
  • Python 3.10-es vagy újabb verzió (az Aurora-adatok létrehozásához szükséges).
  • GPU-kvóta a cél Azure régióban. Az alapértelmezett konfiguráció kiépít egy csomópontot Standard_ND96amsr_A100_v4 (8×A100 80 GB GPU).

Az adattár klónozása

Klónozza a Azure/AKS-adattárat, és keresse meg az infrastruktúramodult:

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

Python-függőségek telepítése

Az Aurora adatfeltöltési lépéséhez Python csomagokra van szükség. Telepítés előtt telepítse őket:

pip install -r terraform/requirements-generator.txt

GPU-kvóta ellenőrzése

Ellenőrizze, hogy az előfizetés rendelkezik-e kvótával a gpu-termékváltozathoz a célrégióban. Cserélje le eastus2 az előnyben részesített régióra:

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

Note

Ha nem rendelkezik GPU-kvótával, vagy GPU-k nélkül szeretné ellenőrizni az infrastruktúrát, telepítse a következővel gpu_enabled=false:

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

A csak CPU-t használó működési mód hasznos az infrastruktúra és az üzenetsor-konfiguráció validálására. A GPU-kat kérő számítási feladatok függőben maradnak.

Üzembe helyezés a Terraform használatával

A Terraform modul inicializálása és alkalmazása:

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

A Terraform modul a következőket hozza létre:

  • AKS-fürt, amelyen engedélyezve van az OIDC-kiállító és a számítási feladat identitása
  • Rendszercsomópont-készlet és GPU-csomópontkészlet (amikor gpu_enabled=true)
  • KubeRay operátor és Kueue vezérlő (Helm-kiadások az MCR-től)
  • GPU-figyelő DaemonSet (amikor gpu_enabled=true)
  • Azure Blob Storage-fiók aurora és llm-pipeline tárolókkal
  • Storage Blob-adatok közreműködői szerepkörrel rendelkező, felhasználó által hozzárendelt felügyelt identitás
  • Összevont identitás hitelesítő adatai a ray-workload ServiceAccounthoz
  • Előre előkészített adathalmazok (Aurora WeatherBench2-adatok és viggo NLG-adatkészlet)

A Terraform-modul teljes konfigurációjához tekintse meg az adattár 1-infrastruktúra könyvtárát .

Csatlakozzon a klaszterhez

Kérje le az új AKS-fürt hitelesítő adatait:

eval "$(terraform output -raw get_credentials_command)"

Az alkalmazás telepítésének ellenőrzése

Győződjön meg arról, hogy az operátorok futnak, és a csomópontok elérhetők:

  1. Ellenőrizze a KubeRay operátort:

    kubectl -n kuberay-system get pods
    

    Várt kimenet:

    NAME                                READY   STATUS    RESTARTS   AGE
    kuberay-operator-xxxxxxxxxx-xxxxx   1/1     Running   0          5m
    
  2. Ellenőrizze a Kueue-vezérlőt:

    kubectl -n kueue-system get pods
    

    Várt kimenet:

    NAME                                            READY   STATUS    RESTARTS   AGE
    kueue-controller-manager-xxxxxxxxxx-xxxxx       1/1     Running   0          5m
    
  3. Ellenőrizze a csomópontokat:

    kubectl get nodes
    

    Várt kimenet (a következővel 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. GPU monitorozásának ellenőrzése (csak akkor, ha gpu_enabled=true):

    kubectl -n gpu-monitoring get daemonsets
    

    Várt kimenet:

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

Erőforrások tisztítása

A modul használatával létrehozott összes Azure erőforrás törlése:

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

Következő lépés