Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wdrożysz infrastrukturę wymaganą do uruchamiania obciążeń Ray AI za pomocą narzędzia Kueue w Azure Kubernetes Service (AKS). Moduł Terraform wdraża klaster AKS z pulami węzłów GPU, instaluje operator KubeRay i kontroler Kueue za pomocą Helm, tworzy magazyn obiektów blob platformy Azure ze wstępnie przygotowanymi zestawami danych oraz konfiguruje tożsamość obciążenia roboczego w celu zapewnienia bezpiecznego dostępu.
Important
Oprogramowanie typu open source jest wymienione w dokumentacji i przykładach usługi AKS. Oprogramowanie, które wdrażasz, jest wykluczone z umów dotyczących poziomu usług AKS, ograniczonej gwarancji i wsparcia technicznego platformy Azure. W miarę korzystania z technologii open source wraz z usługą AKS zapoznaj się z opcjami pomocy technicznej dostępnymi w odpowiednich społecznościach i opiekunami projektów, aby opracować plan.
Firma Microsoft ponosi odpowiedzialność za tworzenie pakietów typu open source wdrażanych w usłudze AKS. Ta odpowiedzialność obejmuje posiadanie pełnej kontroli nad procesem kompilacji, skanowania, podpisywania, weryfikacji i szybkich poprawek, a także nad plikami binarnymi w obrazach kontenerów. Aby uzyskać więcej informacji, zobacz zarządzanie podatnościami dla AKS i zakres wsparcia dla AKS.
Prerequisites
- Subskrypcja platformy Azure. Jeśli go nie masz, utwórz bezpłatne konto.
-
Azure CLI w wersji 2.70 lub nowszej uwierzytelnione za pomocą polecenia
az login. Jeśli masz wiele subskrypcji, ustaw właściwą za pomocąaz account set --subscription <subscription-id>. - Program Terraform w wersji 1.6 lub nowszej.
-
kubectl w wersji 1.28 lub nowszej. Zainstaluj za pomocą
az aks install-cli. - Python w wersji 3.10 lub nowszej (wymagane do generowania danych Aurora).
- Limit przydziału procesora GPU w docelowym regionie Azure. Domyślna konfiguracja udostępnia węzeł
Standard_ND96amsr_A100_v4(8×A100 80 GB GPU).
Klonowanie repozytorium
Sklonuj repozytorium Azure/AKS i przejdź do modułu infrastruktury:
git clone https://github.com/Azure/AKS
cd AKS/examples/kueue-and-ray-on-aks/1-infrastructure
Instalowanie zależności Python
Krok przekazywania danych Aurora wymaga Python pakietów. Zainstaluj je przed wdrożeniem:
pip install -r terraform/requirements-generator.txt
Sprawdzanie limitu przydziału procesora GPU
Sprawdź, czy twoja subskrypcja ma limit przydziału dla jednostki SKU procesora GPU w regionie docelowym. Zastąp eastus2 preferowanym regionem:
LOCATION=<your-azure-region>
az vm list-usage --location "$LOCATION" --output table | grep -i "NDAMSv4_A100"
Note
Jeśli nie masz limitu przydziału procesora GPU lub chcesz zweryfikować infrastrukturę bez procesorów GPU, wdróż za pomocą polecenia gpu_enabled=false:
terraform apply -var="subscription_id=<your-subscription-id>" -var="gpu_enabled=false"
Ścieżka korzystająca wyłącznie z CPU jest przydatna do weryfikacji infrastruktury i konfiguracji kolejki. Obciążenia robocze, które żądają procesorów GPU, pozostają w stanie Pending.
Wdrażanie przy użyciu programu Terraform
Zainicjuj i zastosuj moduł Terraform:
cd terraform
terraform init
terraform apply -var="subscription_id=<your-subscription-id>"
Moduł Terraform tworzy:
- Klaster usługi AKS z włączonym wystawcą tokenów OIDC i tożsamością obciążeń
- Pula węzłów systemowych i pula węzłów procesora GPU (gdy
gpu_enabled=true) - Operator KubeRay i kontroler Kueue (wydania programu Helm z mcR)
- DaemonSet do monitorowania GPU (gdy
gpu_enabled=true) - konto Azure Blob Storage z kontenerami
auroraillm-pipeline - Tożsamość zarządzana przypisana przez użytkownika z rolą Współautor danych obiektu blob usługi Storage
- Poświadczenie tożsamości sfederowanej dla
ray-workloadServiceAccount - Zestawy danych wstępnie przygotowane (dane Aurora WeatherBench2 i zestaw danych viggo NLG)
Aby zobaczyć pełną konfigurację modułu Terraform, zobacz katalog 1-infrastructure w repozytorium.
Połącz się z klastrem
Pobierz dane uwierzytelniające nowego klastra AKS:
eval "$(terraform output -raw get_credentials_command)"
Weryfikowanie wdrożenia
Upewnij się, że operatory działają, a węzły są dostępne:
Sprawdź operator KubeRay:
kubectl -n kuberay-system get podsOczekiwane dane wyjściowe:
NAME READY STATUS RESTARTS AGE kuberay-operator-xxxxxxxxxx-xxxxx 1/1 Running 0 5mSprawdź kontroler Kueue:
kubectl -n kueue-system get podsOczekiwane dane wyjściowe:
NAME READY STATUS RESTARTS AGE kueue-controller-manager-xxxxxxxxxx-xxxxx 1/1 Running 0 5mSprawdź węzły:
kubectl get nodesOczekiwane dane wyjściowe (z
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.xSprawdź monitorowanie GPU (tylko gdy
gpu_enabled=true):kubectl -n gpu-monitoring get daemonsetsOczekiwane dane wyjściowe:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE gpu-monitoring-a100 1 1 1 1 1 <none> 5m
Uprzątnij zasoby
Aby usunąć wszystkie zasoby Azure utworzone przy użyciu tego modułu:
terraform destroy -var="subscription_id=<your-subscription-id>"