AKS veya Arc Kubernetes kümesinde Azure Machine Learning uzantısını kullanma

AKS veya Arc Kubernetes kümenizin eğitim işlerini veya çıkarım iş yüklerini çalıştırmasını sağlamak için önce Azure Machine Learning uzantısını bir AKS veya Arc Kubernetes kümesine dağıtmanız gerekir. Azure Machine Learning uzantısı AKS ve küme uzantısı veya Arc Kubernetes için küme uzantısı üzerine kurulmuştur ve yaşam döngüsü Azure CLI k8s-extension ile kolayca yönetilebilir.

Bu makalede şunları öğrenebilirsiniz:

  • Önkoşullar
  • Sınırlamalar
  • Azure Machine Learning uzantısı yapılandırma ayarlarını gözden geçirme
  • Azure Machine Learning uzantısı dağıtım senaryoları
  • Azure Machine Learning uzantısı dağıtım hatasını doğrulama
  • Azure Machine Learning uzantısı bileşenini gözden geçirme
  • Azure Machine Learning uzantısı yönetme

Önkoşullar

  • Azure'da çalışan bir AKS kümesi. Daha önce küme uzantılarını kullanmadıysanız KubernetesConfiguration hizmet sağlayıcısını kaydetmeniz gerekir.
  • Veya Arc Kubernetes kümesi çalışır durumdadır. Mevcut Kubernetes kümesini Azure Arc'a bağlama yönergelerini izleyin.
    • Küme bir Azure RedHat OpenShift (ARO) Hizmet kümesi veya OpenShift Container Platform (OCP) kümesiyse, Kubernetes kümesini yapılandırma başvurusu makalesinde belirtildiği gibi diğer önkoşul adımlarını karşılamanız gerekir.
  • Üretim amacıyla Kubernetes kümesinin en az 4 vCPU çekirdeği ve 14 GB belleğe sahip olması gerekir. Kaynak ayrıntıları ve küme boyutu önerileri hakkında daha fazla bilgi için bkz . Önerilen kaynak planlaması.
  • Giden ara sunucunun veya güvenlik duvarının arkasında çalışan küme için ek ağ yapılandırmaları gerekir.
  • Azure CLI'yi 2.24.0 veya üzeri bir sürüme yükleyin veya yükseltin.
  • Azure CLI uzantısını k8s-extension 1.2.3 veya sonraki bir sürüme yükleyin veya yükseltin.

Sınırlamalar

  • AKS ile hizmet sorumlusu kullanmak Azure Machine Learning tarafından desteklenmez . AKS kümesinin bunun yerine yönetilen kimlik kullanması gerekir. Hem sistem tarafından atanan yönetilen kimlik hem de kullanıcı tarafından atanan yönetilen kimlik desteklenir. Daha fazla bilgi için bkz . Azure Kubernetes Service'te yönetilen kimlik kullanma.
    • AKS kümenizin kullanılan hizmet sorumlusu Yönetilen Kimlik'i kullanacak şekilde dönüştürüldüğünde, uzantıyı yüklemeden önce tüm düğüm havuzlarının doğrudan güncelleştirilmek yerine silinmesi ve yeniden oluşturulması gerekir.
  • AKS için yerel hesapların devre dışı bırakılması Azure Machine Learning tarafından desteklenmez. AKS Kümesi dağıtıldığında yerel hesaplar varsayılan olarak etkinleştirilir.
  • AKS kümenizde API sunucusuna erişmek için etkinleştirilmiş bir Yetkili IP aralığı varsa AKS kümesi için Azure Machine Learning denetim düzlemi IP aralıklarını etkinleştirin. Azure Machine Learning kontrol düzlemi eşleştirilmiş bölgelere dağıtılır. API sunucusuna erişim olmadan makine öğrenimi podları dağıtılamaz. Bir AKS kümesinde IP aralıklarını etkinleştirirken eşleştirilmiş bölgelerin her ikisi için IP aralıklarını kullanın.
  • Azure Machine Learning, AKS kümesi çapraz aboneliği eklemeyi desteklemez. Farklı bir abonelikte AKS kümeniz varsa, önce bunu Azure-Arc'a bağlamanız ve Azure Machine Learning çalışma alanınızla aynı abonelikte belirtmeniz gerekir.
  • Azure Machine Learning, AKS'deki tüm önizleme aşaması özellikleri için destek garantisi vermez. Örneğin, Microsoft Entra pod kimliği desteklenmez.
  • Aks'nizi çıkarım kümesi olarak oluşturmak veya eklemek için Azure Machine Learning AKS v1 belgesindeki adımları izlediyseniz, sonraki adıma devam etmeden önce azureml-fe ile ilgili eski kaynakları temizlemek için aşağıdaki bağlantıyı kullanın.

Azure Machine Learning uzantısı yapılandırma ayarlarını gözden geçirme

Azure Machine Learning uzantısını dağıtmak için Azure Machine Learning CLI komutunu k8s-extension create kullanabilirsiniz. CLIk8s-extension create, veya --config-protected parametresini kullanarak --config bir dizi yapılandırma ayarı key=value belirtmenize olanak tanır. Aşağıda, Azure Machine Learning uzantısı dağıtımı sırasında belirtilecek kullanılabilir yapılandırma ayarlarının listesi yer alır.

Yapılandırma Ayarı Anahtar Adı Açıklama Eğitim Çıkarım Eğitim ve Çıkarım
enableTraining True veya False, varsayılan False. Machine Learning modeli eğitimi ve toplu puanlama desteği ile Azure Machine Learning uzantısı dağıtımı için olarak ayarlanmalıdırTrue. Yok
enableInference True veya False, varsayılan False. Machine Learning çıkarım desteği ile Azure Machine Learning uzantısı dağıtımı için olarak ayarlanmalıdırTrue. Yok
allowInsecureConnections True veya False, varsayılan False. Geliştirme veya test amacıyla çıkarım HTTP uç noktalarını kullanacak şekilde ayarlanabilirTrue. Yok İsteğe bağlı İsteğe bağlı
inferenceRouterServiceType loadBalancerveya nodePort clusterIP. gerekli ise enableInference=Truegereklidir. Yok
internalLoadBalancerProvider Bu yapılandırma şu anda yalnızca Azure Kubernetes Service (AKS) kümesi için geçerlidir. İç yük dengeleyici kullanarak çıkarım yönlendiricisine izin vermek için azure olarak ayarlayın. Yok İsteğe bağlı İsteğe bağlı
sslSecret Ad alanında Kubernetes gizli dizisinin azureml adı. Bu yapılandırma, olarak ayarlandığında FalseHTTPS uç noktası desteği allowInsecureConnections çıkarımı için gereken depolamak cert.pem için (PEM kodlanmış TLS/SSL sertifikası) ve key.pem (PEM kodlu TLS/SSL anahtarı) kullanılır. örnek bir YAML tanımı sslSecretiçin bkz . SslSecret'i yapılandırma. Bu yapılandırmayı veya ve sslKeyPemFile korumalı yapılandırma ayarlarının sslCertPemFile birleşimini kullanın. Yok İsteğe bağlı İsteğe bağlı
sslCname TLS/SSL CNAME, ÇıKARıM HTTPS uç noktası tarafından kullanılır. Gerekli ise allowInsecureConnections=False Yok İsteğe bağlı İsteğe bağlı
inferenceRouterHA True veya False, varsayılan True. Varsayılan olarak, Azure Machine Learning uzantısı yüksek kullanılabilirlik için bir kümede en az üç çalışan düğümü gerektiren üç çıkarım yönlendiricisi çoğaltması dağıtır. False Kümenizde üçten az çalışan düğümü varsa olarak ayarlanır; bu durumda yalnızca bir çıkarım yönlendiricisi hizmeti dağıtılır. Yok İsteğe bağlı İsteğe bağlı
nodeSelector Varsayılan olarak, dağıtılan kubernetes kaynakları ve makine öğrenmesi iş yükleriniz kümenin bir veya daha fazla düğümüne rastgele dağıtılır ve DaemonSet kaynakları TÜM düğümlere dağıtılır. Uzantı dağıtımını ve eğitim/çıkarım iş yüklerinizi etiketli key1=value1 ve key2=value2ile belirli düğümlerle kısıtlamak istiyorsanız, buna karşılık olarak kullanınnodeSelector.key1=value1nodeSelector.key2=value2. İsteğe bağlı İsteğe bağlı İsteğe bağlı
installNvidiaDevicePlugin True veya False, varsayılan False. NVIDIA GPU donanımındaki ML iş yükleri için NVIDIA Cihaz Eklentisi gereklidir. Varsayılan olarak, Azure Machine Learning uzantısı dağıtımı Kubernetes kümesiNDE GPU donanımı olup olmadığına bakılmaksızın NVIDIA Cihaz Eklentisi'ni yüklemez. Kullanıcı yüklemek için Truebu ayarı olarak belirtebilir, ancak Önkoşulları yerine getirdiğinden emin olun. İsteğe bağlı İsteğe bağlı İsteğe bağlı
installPromOp True veya False, varsayılan True. Azure Machine Learning uzantısının prometheus'ı yönetmek için prometheus operatörüne ihtiyacı vardır. False Mevcut prometheus işlecini yeniden kullanmak için olarak ayarlayın. Mevcut prometheus işlecini yeniden kullanımı hakkında daha fazla bilgi için bkz . prometheus işlecini yeniden kullanımı İsteğe bağlı İsteğe bağlı İsteğe bağlı
installVolcano True veya False, varsayılan True. Azure Machine Learning uzantısının işi zamanlaması için volkan zamanlayıcıya ihtiyacı vardır. False Mevcut volkan zamanlayıcısını yeniden kullanmak için ayarlayın. Mevcut volkan zamanlayıcısını yeniden kullanımı hakkında daha fazla bilgi için bkz . Volkan zamanlayıcısını yeniden kullanımı İsteğe bağlı Yok İsteğe bağlı
installDcgmExporter True veya False, varsayılan False. Dcgm-exporter, Azure portalda izleyebileceğiniz Azure Machine Learning iş yükleri için GPU ölçümlerini kullanıma sunabilir. True dcgm-exporter yüklemek için olarak ayarlayıninstallDcgmExporter. Ancak kendi dcgm-exporter kullanmak istiyorsanız bkz . DCGM ihracatçısı İsteğe bağlı İsteğe bağlı İsteğe bağlı
Yapılandırma Korumalı Ayar Anahtar Adı Açıklama Eğitim Çıkarım Eğitim ve Çıkarım
sslCertPemFile, sslKeyPemFile Çıkarımı HTTPS uç noktası desteği olan Azure Machine Learning uzantısı dağıtımı için gereken TLS/SSL sertifikası ve anahtar dosyasının (PEM kodlanmış) yolu False allowInsecureConnections olarak ayarlandığında. Parola tümceciği korumalı PEM dosyası desteklenmez Yok İsteğe bağlı İsteğe bağlı

Yapılandırma ayarları tablosunda görebileceğiniz gibi, farklı yapılandırma ayarlarının bileşimleri farklı ML iş yükü senaryoları için Azure Machine Learning uzantısını dağıtmanıza olanak tanır:

  • Eğitim işi ve toplu çıkarım iş yükü için enableTraining=True
  • Yalnızca çıkarım iş yükü için enableInference=True
  • Her tür ML iş yükü için hem hem de enableTraining=TrueenableInference=True

Gerçek zamanlı çıkarım iş yükü için Azure Machine Learning uzantısını dağıtmayı planlıyorsanız ve belirtmek enableInference=Trueistiyorsanız, gerçek zamanlı çıkarım iş yüküyle ilgili aşağıdaki yapılandırma ayarlarına dikkat edin:

  • azureml-feyönlendirici hizmeti gerçek zamanlı çıkarım desteği için gereklidir ve için azureml-feyapılandırma ayarını belirtmeniz inferenceRouterServiceType gerekir. azureml-fe aşağıdakilerden inferenceRouterServiceTypebiriyle dağıtılabilir:
    • LoadBalancer yazın. azureml-fe Bulut sağlayıcısının yük dengeleyicisini kullanarak harici olarak kullanıma sunar. Bu değeri belirtmek için kümenizin yük dengeleyici sağlamayı desteklediğine emin olun. Çoğu şirket içi Kubernetes kümesinin dış yük dengeleyiciyi desteklemeyebileceğini unutmayın.
    • NodePort yazın. Her Düğümün azureml-fe IP'sinde statik bir bağlantı noktasında kullanıma sunar. isteğinde <NodeIP>:<NodePort>bulunarak, ile küme dışından iletişim kurabileceksinizazureml-fe. kullanarak NodePort kendi yük dengeleme çözümünüzü ve için azureml-feTLS/SSL sonlandırmayı ayarlayabilirsiniz.
    • ClusterIP yazın. azureml-fe Küme iç IP'sinde kullanıma sunar ve yalnızca küme içinden erişilebilir hale gelirazureml-fe. Küme dışından gelen çıkarım isteklerine hizmet vermek için azureml-fe kendi yük dengeleme çözümünüzü ve için azureml-feTLS/SSL sonlandırmayı ayarlamanız gerekir.
  • Yönlendirme hizmetinin yüksek kullanılabilirliğini azureml-fe sağlamak için, Azure Machine Learning uzantısı dağıtımı varsayılan olarak üç veya daha fazla düğüme sahip kümeler azureml-fe için üç çoğaltma oluşturur. Kümenizde 3'ten az düğüm varsa değerini ayarlayın inferenceRouterHA=False.
  • Ayrıca model uç noktalarına erişimi kısıtlamak ve istemcilerin gönderdiği verilerin güvenliğini sağlamak için HTTPS kullanmayı da göz önünde bulundurmanız gerekir. Bu amaçla yapılandırma ayarını veya ve sslCertPemFile yapılandırma korumalı ayarların birleşimini sslKeyPemFile belirtmeniz sslSecret gerekir.
  • Varsayılan olarak, Azure Machine Learning uzantısı dağıtımı HTTPS desteği için yapılandırma ayarlarını bekler. Geliştirme veya test amacıyla, HTTP desteği yapılandırma ayarı allowInsecureConnections=Truearacılığıyla kolayca sağlanır.

Azure Machine Learning uzantısı dağıtımı - CLI örnekleri ve Azure portal

Azure Machine Learning uzantısını CLI ile dağıtmak için zorunlu parametreler için değerleri geçirme komutunu kullanın az k8s-extension create .

Başvuru için dört tipik uzantı dağıtım senaryosu listeledik. Üretim kullanımınıza yönelik uzantı dağıtmak için yapılandırma ayarlarının tam listesini dikkatle okuyun.

  • Eğitim işlerini çalıştırmak veya modelleri çevrimiçi/toplu uç nokta olarak dağıtmak üzere her türlü ML iş yükünü çalıştırmak için Hızlı kavram kanıtı için Azure'da AKS kümesini kullanın

    AKS kümesinde Azure Machine Learning uzantısı dağıtımı için parametre değerini --cluster-type belirttiğinizden managedClusters emin olun. Azure Machine Learning uzantısını dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableTraining=True enableInference=True inferenceRouterServiceType=LoadBalancer allowInsecureConnections=True InferenceRouterHA=False --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster
    
  • Yalnızca eğitim işlerini çalıştırmak için hızlı bir kavram kanıtı için Arc Kubernetes kümesini Azure dışında kullanma

    Arc Kubernetes kümesinde Azure Machine Learning uzantısı dağıtımı için parametre değerini --cluster-type belirtmeniz connectedClusters gerekir. Azure Machine Learning uzantısını dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableTraining=True --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <your-RG-name> --scope cluster
    
  • Üretim eğitimi ve çıkarım iş yükü için Azure'da AKS kümesini etkinleştirme AKS'de Azure Machine Learning uzantısı dağıtımı için parametre değerini --cluster-type belirttiğinizden managedClusters emin olun. Kümenizin üçten fazla düğümü olduğunu ve çıkarım iş yükü desteği için azure genel yük dengeleyici ve HTTPS kullandığınız varsayılır. Azure Machine Learning uzantısını dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableTraining=True enableInference=True inferenceRouterServiceType=LoadBalancer sslCname=<ssl cname> --config-protected sslCertPemFile=<file-path-to-cert-PEM> sslKeyPemFile=<file-path-to-cert-KEY> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster
    
  • NVIDIA GPU'larını kullanarak üretim eğitimi ve çıkarım iş yükü için arc kubernetes kümesini her yerden etkinleştirme

    Arc Kubernetes kümesinde Azure Machine Learning uzantısı dağıtımı için parametre değerini --cluster-type belirttiğinizden connectedClusters emin olun. Kümenizin üçten fazla düğümü olduğunu varsayarsak, çıkarım iş yükü desteği için bir NodePort hizmet türü ve HTTPS kullanırsınız. Azure Machine Learning uzantısını dağıtmak için aşağıdaki Azure CLI komutunu çalıştırın:

    az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableTraining=True enableInference=True inferenceRouterServiceType=NodePort sslCname=<ssl cname> installNvidiaDevicePlugin=True installDcgmExporter=True --config-protected sslCertPemFile=<file-path-to-cert-PEM> sslKeyPemFile=<file-path-to-cert-KEY> --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <your-RG-name> --scope cluster
    

Azure Machine Learning uzantısı dağıtım hatasını doğrulama

  1. Azure Machine Learning uzantısı ayrıntılarını denetlemek için aşağıdaki CLI komutunu çalıştırın:

    az k8s-extension show --name <extension-name> --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <resource-group>
    
  2. Yanıtta "name" ve "provisioningState": "Succeeded" ifadesini arayın. İlk birkaç dakika boyunca "provisioningState": "Pending" gösterebileceğini unutmayın.

  3. provisioningState değeri Başarılı olarak görünüyorsa makinenizde aşağıdaki komutu çalıştırın ve kubeconfig dosyası kümenize işaret ederek "azureml" ad alanı altındaki tüm podların 'Çalışıyor' durumunda olup olmadığını denetleyin:

     kubectl get pods -n azureml
    

Azure Machine Learning uzantısı bileşenini gözden geçirme

Azure Machine Learning uzantısı dağıtımı tamamlandıktan sonra, kümede oluşturulan kaynakların listesini görmek için kullanabilirsiniz kubectl get deployments -n azureml . Genellikle belirtilen yapılandırma ayarlarına göre aşağıdaki kaynakların bir alt kümesinden oluşur.

Kaynak adı Kaynak türü Eğitim Çıkarım Eğitim ve Çıkarım Açıklama Bulutla iletişim
geçiş sunucusu Kubernetes dağıtımı Geçiş sunucusu yalnızca Arc Kubernetes kümesi için oluşturulur, AKS kümesinde oluşturulmaz . Geçiş sunucusu, bulut hizmetleriyle iletişim kurmak için Azure Relay ile birlikte çalışır. bulut hizmetinden iş oluşturma, model dağıtımı isteğini alma; iş durumunu bulut hizmetiyle eşitleyin.
ağ geçidi Kubernetes dağıtımı Ağ geçidi, iletişim kurmak ve verileri ileri geri göndermek için kullanılır. Düğümleri ve küme kaynak bilgilerini bulut hizmetlerine gönderin.
aml işleci Kubernetes dağıtımı Yok Eğitim işlerinin yaşam döngüsünü yönetin. Azure Container Registry kimlik doğrulaması ve yetkilendirmesi için bulut belirteci hizmetiyle belirteç değişimi.
metrics-controller-manager Kubernetes dağıtımı Prometheus yapılandırmasını yönetme Yok
{EXTENSION-NAME}-kube-state-metrics Kubernetes dağıtımı Kümeyle ilgili ölçümleri Prometheus'a aktarın. Yok
{EXTENSION-NAME}-prometheus-operator Kubernetes dağıtımı İsteğe bağlı İsteğe bağlı İsteğe bağlı Prometheus ve ilgili izleme bileşenlerinin Kubernetes yerel dağıtımını ve yönetimini sağlayın. Yok
amlarc-identity-controller Kubernetes dağıtımı Yok Yönetilen kimlik aracılığıyla Azure Blob/Azure Container Registry belirtecini isteyin ve yenileyin. Çıkarım/model dağıtımı tarafından kullanılan Azure Container Registry ve Azure Blob'un kimlik doğrulaması ve yetkilendirmesi için bulut belirteci hizmetiyle belirteç değişimi.
amlarc-identity-proxy Kubernetes dağıtımı Yok Yönetilen kimlik aracılığıyla Azure Blob/Azure Container Registry belirtecini isteyin ve yenileyin. Çıkarım/model dağıtımı tarafından kullanılan Azure Container Registry ve Azure Blob'un kimlik doğrulaması ve yetkilendirmesi için bulut belirteci hizmetiyle belirteç değişimi.
azureml-fe-v2 Kubernetes dağıtımı Yok Gelen çıkarım isteklerini dağıtılan hizmetlere yönlendiren ön uç bileşeni. Hizmet günlüklerini Azure Blob'a gönderme.
inference-operator-controller-manager Kubernetes dağıtımı Yok Çıkarım uç noktalarının yaşam döngüsünü yönetin. Yok
volkana giriş Kubernetes dağıtımı İsteğe bağlı Yok İsteğe bağlı Volkan giriş web kancası. Yok
yanardağ denetleyicileri Kubernetes dağıtımı İsteğe bağlı Yok İsteğe bağlı Azure Machine Learning eğitim işi podlarının yaşam döngüsünü yönetin. Yok
volcano-scheduler Kubernetes dağıtımı İsteğe bağlı Yok İsteğe bağlı Küme içi iş zamanlaması gerçekleştirmek için kullanılır. Yok
fluent bit Kubernetes daemonset Bileşenlerin sistem günlüğünü toplayın. Bileşenlerin sistem günlüğünü buluta yükleyin.
{EXTENSION-NAME}-dcgm-exporter Kubernetes daemonset İsteğe bağlı İsteğe bağlı İsteğe bağlı dcgm-exporter, Prometheus için GPU ölçümlerini kullanıma sunar. Yok
nvidia-device-plugin-daemonset Kubernetes daemonset İsteğe bağlı İsteğe bağlı İsteğe bağlı nvidia-device-plugin-daemonset, kümenizin her düğümünde GPU'ları kullanıma sunar Yok
prometheus-prom-prometheus Kubernetes statefulset İş ölçümlerini toplayın ve buluta gönderin. Cpu/gpu/bellek kullanımı gibi iş ölçümlerini buluta gönderin.

Önemli

  • Azure Relay kaynağı, Arc kümesi kaynağıyla aynı kaynak grubunun altındadır. Kubernetes kümesiyle iletişim kurmak için kullanılır ve bunların değiştirilmesi ekli işlem hedeflerini bozar.
  • Varsayılan olarak kubernetes dağıtım kaynakları kümenin 1 veya daha fazla düğümüne rastgele dağıtılır ve daemonset kaynakları ALL düğümlerine dağıtılır. Uzantı dağıtımını belirli düğümlere kısıtlamak istiyorsanız, yapılandırma ayarları tablosunda açıklanan yapılandırma ayarını kullanınnodeSelector.

Not

  • {EXTENSION-NAME}: CLI komutuyla az k8s-extension create --name belirtilen uzantı adıdır.

Azure Machine Learning uzantısı yönetme

Azure Machine Learning uzantısını güncelleştirme, listeleme, gösterme ve silme.

Sonraki adımlar