Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Kubernetes Service (AKS) üzerinde Kueue ile Ray AI iş yüklerini çalıştırmak için gereken altyapıyı dağıtacaksınız. Terraform modülü GPU düğüm havuzları ile bir AKS kümesi sağlar, Helm aracılığıyla KubeRay işlecini ve Kueue denetleyicisini yükler, önceden hazırlanmış veri kümeleriyle Azure Blob Depolama oluşturur ve güvenli erişim için iş yükü kimliğini yapılandırmaktadır.
Önemli
AKS dokümantasyonu ve örneklerinde açık kaynaklı yazılımdan bahsedilmektedir. Dağıttığınız yazılım, AKS hizmet düzeyi anlaşmalarından, sınırlı garanti ve Azure desteğinden hariç tutulur. AKS ile birlikte açık kaynak teknolojisini kullanırken, bir plan geliştirmek için ilgili topluluklar ve proje sorumlularından mevcut olan destek seçeneklerine danışın.
Microsoft, AKS üzerinde dağıttığımız açık kaynak paketlerinin oluşturulmasından sorumluluk alır. Bu sorumluluk, yapı, tarama, imzalama, doğrulama ve hızlı düzeltme sürecinin tam sahipliğini içermenin yanı sıra, konteyner görüntülerindeki ikili dosyaların kontrolünü de kapsar. Daha fazla bilgi için AKS için güvenlik açığı yönetimi ve AKS destek kapsamı başlıklarına bakın.
Önkoşullar
- Azure aboneliği. Hesabınız yoksa ücretsiz hesap oluşturun.
-
Azure CLI'nin
az loginile kimlik doğrulaması yapılmış 2.70 veya sonraki bir sürümü. Birden çok aboneliğiniz varsa,az account set --subscription <subscription-id>ile doğru aboneliği ayarlayın. - Terraform sürüm 1.6 veya üzeri.
-
kubectl sürüm 1.28 veya üzeri.
az aks install-cliile yükleyin. - Python sürüm 3.10 veya üzeri (Aurora veri oluşturma için gereklidir).
- Hedef Azure bölgenizdeki GPU kotası. Varsayılan yapılandırma bir
Standard_ND96amsr_A100_v4düğüm (8×A100 80 GB GPU) sağlar.
Depoyu kopyalama
Azure/AKS deposunu kopyalayın ve altyapı modülüne gidin:
git clone https://github.com/Azure/AKS
cd AKS/examples/kueue-and-ray-on-aks/1-infrastructure
Python bağımlılıklarını yükleme
Aurora verilerini karşıya yükleme adımı için Python paketleri gerekir. Bunları dağıtmadan önce yükleyin:
pip install -r terraform/requirements-generator.txt
GPU kotası denetleme
Aboneliğinizin hedef bölgenizdeki GPU SKU'su için kotası olduğunu doğrulayın.
eastus2 yerine tercih ettiğiniz bölgeyi yazın:
LOCATION=<your-azure-region>
az vm list-usage --location "$LOCATION" --output table | grep -i "NDAMSv4_A100"
Not
GPU kotanız yoksa veya GPU kullanmadan altyapıyı doğrulamak istiyorsanız, gpu_enabled=false ile dağıtım yapın:
terraform apply -var="subscription_id=<your-subscription-id>" -var="gpu_enabled=false"
Yalnızca CPU yolu, altyapıyı ve kuyruk yapılandırmasını doğrulamak için kullanışlıdır. GPU isteyen iş yükleri Beklemede kalır.
Terraform ile dağıtım yapmak
Terraform modülünü başlatın ve uygulayın:
cd terraform
terraform init
terraform apply -var="subscription_id=<your-subscription-id>"
Terraform modülü aşağıdakileri oluşturur:
- OIDC yayımlayıcısı ve iş yükü kimliği etkinleştirilmiş bir AKS kümesi
- Sistem düğümü havuzu ve GPU düğüm havuzu (
gpu_enabled=trueolduğunda) - KubeRay operatörü ve Kueue denetleyicisi (MCR kaynaklı Helm sürümleri)
- GPU izleme DaemonSet'i (
gpu_enabled=trueolduğunda) -
auroravellm-pipelinekapsayıcılarına sahip Azure Blob Depolama hesabı - Depolama Blobu Verileri Katkıda Bulunanı rolüne sahip kullanıcı tarafından atanan yönetilen kimlik
-
ray-workloadServiceAccount için federe kimlik bilgisi - Önceden hazırlanmış veri kümeleri (Aurora WeatherBench2 verileri ve viggo NLG veri kümesi)
Terraform modülü yapılandırmasının tamamı için depodaki 1 altyapı dizinine bakın.
Kümeye bağlanma
Yeni AKS kümenizin kimlik bilgilerini alın:
eval "$(terraform output -raw get_credentials_command)"
Dağıtımı doğrulayın.
İşleçlerin çalıştığını ve düğümlerin kullanılabilir olduğunu onaylayın:
KubeRay operatörünü doğrulayın:
kubectl -n kuberay-system get podsBeklenen çıkış:
NAME READY STATUS RESTARTS AGE kuberay-operator-xxxxxxxxxx-xxxxx 1/1 Running 0 5mKueue denetleyicisini doğrulayın:
kubectl -n kueue-system get podsBeklenen çıkış:
NAME READY STATUS RESTARTS AGE kueue-controller-manager-xxxxxxxxxx-xxxxx 1/1 Running 0 5mDüğümleri doğrulayın:
kubectl get nodesBeklenen çıkış (ile
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.xGPU izlemeyi doğrulayın (yalnızca
gpu_enabled=trueolduğunda):kubectl -n gpu-monitoring get daemonsetsBeklenen çıkış:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE gpu-monitoring-a100 1 1 1 1 1 <none> 5m
Kaynakları temizle
Bu modülü kullanarak oluşturduğunuz tüm Azure kaynaklarını silmek için:
terraform destroy -var="subscription_id=<your-subscription-id>"