Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u uw Azure Kubernetes Service-cluster (AKS) of met Azure Arc ingeschakelde Kubernetes-cluster wilt gebruiken voor het uitvoeren van trainingstaken of inferentieworkloads, implementeert u eerst de Azure Machine Learning-extensie. De Azure Machine Learning-extensie is een Standard-clusterextensie voor AKS en clusterextensie voor kubernetes met Azure Arc. U kunt de levenscyclus beheren met behulp van Azure CLI k8s-extension.
In dit artikel krijgt u meer informatie over:
- Vereisten
- Beperkingen
- Configuratie-instellingen van Azure Machine Learning-extensie controleren
- Implementatiescenario's voor Azure Machine Learning-extensie
- Implementatie van Azure Machine Learning-extensie verifiëren
- Onderdelen van de Azure Machine Learning-extensie bekijken
- Azure Machine Learning CLI-extensie beheren
Vereisten
- Een AKS-cluster dat wordt uitgevoerd in Azure. Als u nog geen clusterextensies hebt gebruikt, moet u de KubernetesConfiguration-serviceprovider registreren.
- Of een Kubernetes-cluster met Azure Arc ingeschakeld dat actief is. Volg de instructies in het verbinden van een bestaand Kubernetes-cluster met Azure Arc.
- Als het cluster een Azure RedHat OpenShift-servicecluster (ARO) of OCP-cluster (OpenShift Container Platform) is, moet u voldoen aan andere vereiste stappen, zoals beschreven in het artikel Naslaginformatie voor het configureren van Kubernetes-cluster .
- Voor productiedoeleinden moet het Kubernetes-cluster minimaal 4 vCPU-kernen en 14 GB geheugen hebben. Zie Aanbevolen resourceplanning voor meer informatie over resourcedetails en aanbevelingen voor clustergrootte.
- Een cluster dat achter een uitgaande proxyserver of firewall wordt uitgevoerd, heeft extra netwerkconfiguraties nodig.
- Azure CLI installeren of upgraden naar versie 2.51.0 of hoger.
- Installeer of upgrade de Azure CLI-extensie
k8s-extensionnaar versie 1.2.3 of hoger.
Beperkingen
- Azure Machine Learning ondersteunt het gebruik van een service-principal met AKS niet. Het AKS-cluster moet in plaats daarvan een beheerde identiteit gebruiken. Zowel door het systeem toegewezen beheerde identiteit als door de gebruiker toegewezen beheerde identiteit worden ondersteund. Zie Een beheerde identiteit gebruiken in Azure Kubernetes Service voor meer informatie.
- Wanneer u uw AKS-cluster converteert van het gebruik van een service-principal naar een beheerde identiteit, moet u alle knooppuntgroepen verwijderen en opnieuw maken voordat u de extensie installeert. U kunt de knooppuntgroepen niet rechtstreeks bijwerken.
- Azure Machine Learning biedt geen ondersteuning voorhet uitschakelen van lokale accounts voor AKS. Wanneer u het AKS-cluster implementeert, worden lokale accounts standaard ingeschakeld.
- Als voor uw AKS-cluster een Authorized IP-bereik is ingeschakeld voor toegang tot de API-server moet u de IP-bereiken van het Azure Machine Learning besturingsvlak voor het AKS-cluster inschakelen. Het Azure Machine Learning-besturingsvlak wordt geïmplementeerd in gekoppelde regio's. Zonder toegang tot de API-server kunnen de ML-pods niet worden geïmplementeerd. Gebruik de IP-bereiken voor beide gekoppelde regio's bij het inschakelen van de IP-bereiken in een AKS-cluster.
- Azure Machine Learning biedt geen ondersteuning voor het koppelen van een AKS-cluster voor meerdere abonnementen. Als u een AKS-cluster in een ander abonnement hebt, moet u het eerst verbinden met Azure Arc en opgeven in hetzelfde abonnement als uw Azure Machine Learning-werkruimte.
- Azure Machine Learning biedt geen garantie voor alle preview-fasefuncties in AKS. Microsoft Entra pod-managed identity (verouderd) wordt bijvoorbeeld niet ondersteund. Gebruik in plaats daarvan Microsoft Entra Workload-id.
- Als u de stappen in het document Azure Machine Learning AKS v1 hebt gevolgd om uw AKS als een deductiecluster te maken of te koppelen, gebruikt u de volgende koppeling om de verouderde azureml-fe-gerelateerde resources op te schonen voordat u doorgaat met de volgende stap.
Configuratie-instellingen van Azure Machine Learning-extensie controleren
Gebruik de opdracht Azure CLI az k8s-extension create om de Azure Machine Learning-extensie te implementeren. De az k8s-extension create opdracht accepteert configuratie-instellingen als door spaties gescheiden key=value paren via de --config of --config-protected parameter. De volgende tabel bevat de beschikbare configuratie-instellingen die u tijdens de implementatie kunt opgeven.
| Sleutelnaam van configuratie-instelling | Beschrijving | Opleiding | Inferentie | Training en inferentie |
|---|---|---|---|---|
enableTraining |
True of False, standaard False.
Moet zijn ingesteld op True voor de implementatie van de Azure Machine Learning-extensie met ondersteuning voor training van machine learning-modellen en batchscoreondersteuning. |
✓ | N.v.t. | ✓ |
enableInference |
True of False, standaard False.
Moet zijn ingesteld op True implementatie van Azure Machine Learning-extensies met ondersteuning voor Machine Learning-deductie. |
N.v.t. | ✓ | ✓ |
allowInsecureConnections |
True of False, standaard False.
Kan worden ingesteld op True om HTTP-eindpunten voor inferentie te gebruiken voor ontwikkelings- of testdoeleinden. |
N.v.t. | Optioneel | Optioneel |
inferenceRouterServiceType |
loadBalancer, nodePort, of clusterIP.
Vereist indien enableInference=True. |
N.v.t. | ✓ | ✓ |
internalLoadBalancerProvider |
Deze configuratie is nu alleen van toepassing op het AKS-cluster (Azure Kubernetes Service). Stel in op azure om de inferentierouter toe te staan een interne load balancer te gebruiken. |
N.v.t. | Optioneel | Optioneel |
sslSecret |
De naam van het Kubernetes-geheim in de azureml naamruimte. Deze configuratie wordt gebruikt voor het opslaan van cert.pem (PEM-gecodeerd TLS/SSL-certificaat) en key.pem (PEM-gecodeerde TLS/SSL-sleutel), die nodig zijn voor ondersteuning van HTTPS-eindpunten voor inferentie wanneer allowInsecureConnections is ingesteld op False. Zie sslSecret configureren voor een voorbeeld van een YAML-definitie van sslSecret. Gebruik deze configuratie of een combinatie van sslCertPemFile en sslKeyPemFile beveiligde configuratie-instellingen. |
N.v.t. | Optioneel | Optioneel |
sslCname |
Een TLS/SSL-CNAME wordt gebruikt door het HTTPS-eindpunt voor inferentie.
Vereist indien allowInsecureConnections=False |
N.v.t. | Optioneel | Optioneel |
inferenceRouterHA |
True of False, standaard True. De Azure Machine Learning-extensie implementeert standaard drie deductierouterreplica's voor hoge beschikbaarheid. Hiervoor zijn ten minste drie werkknooppunten in een cluster vereist. Ingesteld op False als uw cluster minder dan drie werkknooppunten heeft, in dit geval wordt er slechts één deductierouterservice geïmplementeerd. |
N.v.t. | Optioneel | Optioneel |
nodeSelector |
Standaard worden de geïmplementeerde Kubernetes-resources en uw machine learning-workloads willekeurig geïmplementeerd op een of meer knooppunten van het cluster en worden DaemonSet-resources geïmplementeerd op ALLE knooppunten. Als u de implementatie van de extensie en uw trainings-/inferentieworkloads wilt beperken tot specifieke knooppunten met label key1=value1 en key2=value2, gebruik dan respectievelijk nodeSelector.key1=value1 en nodeSelector.key2=value2. |
Optioneel | Optioneel | Optioneel |
installNvidiaDevicePlugin |
True of False, standaard False.
NVIDIA-apparaatinvoegtoepassing is vereist voor ML-workloads op NVIDIA GPU-hardware. De implementatie van de Azure Machine Learning-extensie installeert standaard geen NVIDIA-apparaatinvoegtoepassing, ongeacht of het Kubernetes-cluster GPU-hardware heeft of niet. De gebruiker kan deze instelling opgeven om Truedit te installeren, maar zorg ervoor dat aan de Vereisten wordt voldaan. |
Optioneel | Optioneel | Optioneel |
installPromOp |
True of False, standaard True. De Azure Machine Learning-extensie heeft prometheus-operator nodig om prometheus te beheren. Stel in op False om de bestaande Prometheus-operator te hergebruiken. Zie de Prometheus-operator hergebruiken voor meer informatie over het hergebruiken van de bestaande Prometheus-operator. |
Optioneel | Optioneel | Optioneel |
installVolcano |
True of False, standaard True. De Azure Machine Learning-extensie heeft vulkanplanner nodig om de taak te plannen. Instellen op False om de bestaande Volcano-scheduler te hergebruiken. Zie het hergebruiken van Volcano Scheduler voor meer informatie over het hergebruiken van de bestaande Volcano Scheduler. |
Optioneel | N.v.t. | Optioneel |
installDcgmExporter |
True of False, standaard False. Dcgm-exporteur kan GPU-metrische gegevens beschikbaar maken voor Azure Machine Learning-workloads, die kunnen worden bewaakt in Azure Portal. Stel installDcgmExporter in op True om dcgm-exporter te installeren. Maar als u uw eigen dcgm-exporteur wilt gebruiken, raadpleegt u DCGM-exporteur |
Optioneel | Optioneel | Optioneel |
| Sleutelnaam van door configuratie beveiligde instelling | Beschrijving | Opleiding | Inferentie | Training en inferentie |
|---|---|---|---|---|
sslCertPemFile, sslKeyPemFile |
Pad naar TLS/SSL-certificaat en sleutelbestand (PEM-gecodeerd), vereist voor de implementatie van de Azure Machine Learning-extensie met ondersteuning voor HTTPS-eindpunten voor inferentie, wanneer allowInsecureConnections is ingesteld op False.
Opmerking: een met een wachtwoordzin beveiligd PEM-bestand wordt niet ondersteund |
N.v.t. | Optioneel | Optioneel |
Zoals u in de tabel met configuratie-instellingen kunt zien, kunt u met de combinaties van verschillende configuratie-instellingen de Azure Machine Learning-extensie implementeren voor verschillende ML-workloadscenario's:
- Geef voor de trainingstaak en de batch-inferentieworkload
enableTraining=Trueop - Geef
enableInference=Truealleen op voor inferentieworkloads. - Geef voor alle soorten ML-workloads zowel
enableTraining=TruealsenableInference=Trueop
Als u van plan bent de Azure Machine Learning-extensie te implementeren voor een realtime-inferentieworkload en enableInference=True wilt opgeven, let dan op de volgende configuratie-instellingen met betrekking tot de workload voor realtime-inferentie:
-
azureml-ferouterservice is vereist voor ondersteuning van realtime-inferentie en u moet de configuratie-instellinginferenceRouterServiceTypevoorazureml-feopgeven.azureml-fekan op een van de volgende maniereninferenceRouterServiceTypeworden geïmplementeerd:- Typ
loadBalancer. Steltazureml-feextern beschikbaar via de load balancer van een cloudprovider. Als u deze waarde wilt opgeven, moet u ervoor zorgen dat uw cluster ondersteuning biedt voor het inrichten van load balancers. Let op: de meeste on-premises Kubernetes-clusters bieden mogelijk geen ondersteuning voor externe load balancer. - Typ
nodePort. Steltazureml-febeschikbaar op het IP-adres van elke node via een statische poort. U kunt van buiten het cluster contact opnemen metazureml-fedoor<NodeIP>:<NodePort>aan te vragen. Met het gebruiknodePortkunt u ook uw eigen taakverdelingsoplossing en TLS/SSL-beëindiging instellen voorazureml-fe. Raadpleeg Integrate other ingress controller with Azure Machine Learning extension over HTTP or HTTPS voor meer informatie over het configureren van uw eigen ingress. - Typ
clusterIP. Steltazureml-febeschikbaar via een intern IP-adres van het cluster en maaktazureml-fealleen bereikbaar binnen het cluster. Omazureml-feinferentieverzoeken van buiten het cluster te laten verwerken, moet u uw eigen load-balanceroplossing en TLS/SSL-terminatie voorazureml-feinstellen. Zie Andere ingress-controller integreren met de Azure Machine Learning-extensie via HTTP of HTTPS voor meer informatie over het configureren van uw eigen ingress.
- Typ
- Om een hoge beschikbaarheid van de routeringsservice te garanderen, maakt de implementatie van
azureml-fede Azure Machine Learning-extensie standaard drie replica's vanazureml-feclusters met drie knooppunten of meer. Als uw cluster minder dan 3 knooppunten heeft, stelt u deze ininferenceRouterHA=False. - U wilt ook overwegen om HTTPS te gebruiken om de toegang tot modeleindpunten te beperken en de gegevens te beveiligen die clients verzenden. Hiervoor moet u ofwel de configuratie-instelling
sslSecretopgeven, of een combinatie van de door de configuratie beveiligde instellingensslKeyPemFileensslCertPemFile. - De implementatie van de Azure Machine Learning-extensie verwacht standaard configuratie-instellingen voor HTTPS-ondersteuning . Voor ontwikkelings- of testdoeleinden wordt HTTP-ondersteuning handig geboden via de configuratie-instelling
allowInsecureConnections=True.
Implementatie van Azure Machine Learning-extensie: CLI-voorbeelden en Azure Portal
Als u de Azure Machine Learning-extensie wilt implementeren met behulp van CLI, gebruikt u de opdracht az k8s-extension create en geeft u waarden op voor de verplichte parameters.
In de volgende lijst worden vier typische implementatiescenario's voor extensies beschreven. Lees de volledige lijst met configuratie-instellingen om de extensie voor uw productiegebruik te implementeren.
Gebruik een AKS-cluster in Azure voor een snel proof-of-concept voor het uitvoeren van allerlei SOORTEN ML-werkbelastingen, bijvoorbeeld om trainingstaken uit te voeren of modellen als online/batch-eindpunten te implementeren
Geef
managedClusterswaarde op voor--cluster-typeparameter voor Azure Machine Learning extensie-implementatie op AKS-cluster. Voer de volgende Azure CLI-opdracht uit om de Azure Machine Learning-extensie te implementeren: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 clusterGebruik een Kubernetes-cluster met Azure Arc buiten Azure voor een snel proof-of-concept om alleen trainingstaken uit te voeren
Geef voor Azure Machine Learning-extensie-implementatie op een kubernetes-cluster met Azure Arc de waarde
connectedClustersop voor--cluster-typeparameter. Voer de volgende Azure CLI-opdracht uit om de Azure Machine Learning-extensie te implementeren: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 clusterSchakel een AKS-cluster in Azure in voor productieworkloads voor training en inferentie Voor implementatie van de Azure Machine Learning-extensie op AKS geeft u de waarde
managedClustersop voor de parameter--cluster-type. Ervan uitgaande dat uw cluster meer dan drie knooppunten heeft en u een openbare Load Balancer van Azure en HTTPS gebruikt voor de ondersteuning van deductieworkloads. Voer de volgende Azure CLI-opdracht uit om de Azure Machine Learning-extensie te implementeren: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 clusterEen Kubernetes-cluster met Azure Arc overal inschakelen voor productietraining en deductieworkload met behulp van NVIDIA GPU's
Geef voor Azure Machine Learning-extensie-implementatie op een kubernetes-cluster met Azure Arc de waarde
connectedClustersop voor--cluster-typeparameter. Ervan uitgaande dat uw cluster meer dan drie knooppunten heeft, gebruikt u een NodePort-servicetype en HTTPS voor deductieworkloadondersteuning. Voer de volgende Azure CLI-opdracht uit om de Azure Machine Learning-extensie te implementeren: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
Implementatie van Azure Machine Learning-extensie verifiëren
Voer de toepasselijke CLI-opdracht uit om de details van de Azure Machine Learning-extensie te controleren:
AKS
az k8s-extension show --name <extension-name> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <resource-group>Door Azure Arc ingeschakelde Kubernetes
az k8s-extension show --name <extension-name> --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <resource-group>Zoek in het antwoord naar
"name"en"provisioningState": "Succeeded". Mogelijk wordt"provisioningState": "Pending"de eerste paar minuten weergegeven.Als in provisioningState de status Geslaagd wordt weergegeven, voert u de volgende opdracht uit op uw computer met het kubeconfig-bestand dat naar uw cluster verwijst om te controleren of alle pods in de naamruimte
azuremlde statusRunninghebben:kubectl get pods -n azureml
Azure Machine Learning-extensieonderdeel controleren
Wanneer de implementatie van de Azure Machine Learning-extensie is voltooid, gebruikt u kubectl get deployments -n azureml om de lijst met resources weer te geven die in het cluster zijn gemaakt. De lijst bestaat meestal uit een subset van de volgende resources, afhankelijk van de configuratie-instellingen die u opgeeft.
| Resourcenaam | Brontype | Opleiding | Inferentie | Training en inferentie | Beschrijving | Communicatie met cloud |
|---|---|---|---|---|---|---|
| relayserver | Kubernetes-implementatie | ✓ | ✓ | ✓ | De implementatie maakt de relay-server alleen aan voor Azure Arc-ingeschakelde Kubernetes-clusters, en niet in AKS-clusters. Relay-server werkt met Azure Relay om te communiceren met de cloudservices. | Ontvang de aanvraag voor het maken van een taak, modelimplementatie van de cloudservice; synchroniseer de taakstatus met de cloudservice. |
| toegangspoort | Kubernetes-implementatie | ✓ | ✓ | ✓ | De gateway wordt gebruikt om gegevens heen en weer te communiceren en te verzenden. | Knooppunten en clusterresourcegegevens verzenden naar cloudservices. |
| aml-operator | Kubernetes-implementatie | ✓ | N.v.t. | ✓ | De levenscyclus van trainingstaken beheren. | Tokenuitwisseling met de cloudtokenservice voor verificatie en autorisatie van Azure Container Registry. |
| metrics-controller-manager | Kubernetes-implementatie | ✓ | ✓ | ✓ | De configuratie voor Prometheus beheren | N.v.t. |
| {EXTENSION-NAME}-kube-state-metrics | Kubernetes-implementatie | ✓ | ✓ | ✓ | Exporteer de clustergerelateerde metrische gegevens naar Prometheus. | N.v.t. |
| {EXTENSION-NAME}-prometheus-beheerder | Kubernetes-implementatie | Optioneel | Optioneel | Optioneel | Bied systeemeigen Kubernetes-implementatie en -beheer van Prometheus en gerelateerde bewakingsonderdelen. | N.v.t. |
| amlarc-identity-controller | Kubernetes-implementatie | N.v.t. | ✓ | ✓ | Azure Blob/Azure Container Registry-token aanvragen en vernieuwen via beheerde identiteit. | Tokenuitwisseling met de cloudtokenservice voor authenticatie en autorisatie van Azure Container Registry en Azure Blob die worden gebruikt voor inferentie/modelimplementatie. |
| amlarc-identity-proxy | Kubernetes-implementatie | N.v.t. | ✓ | ✓ | Azure Blob/Azure Container Registry-token aanvragen en vernieuwen via beheerde identiteit. | Tokenuitwisseling met de cloudtokenservice voor authenticatie en autorisatie van Azure Container Registry en Azure Blob, gebruikt voor inferentie/modelimplementatie. |
| azureml-fe-v2 | Kubernetes-implementatie | N.v.t. | ✓ | ✓ | De front-endcomponent die binnenkomende inferentieaanvragen naar gedeployede services routeert. | Servicelogboeken verzenden naar Azure Blob. |
| inferentie-operator-controller-manager | Kubernetes-implementatie | N.v.t. | ✓ | ✓ | De levenscyclus van deductie-eindpunten beheren. | N.v.t. |
| vulkaan-toegang | Kubernetes-implementatie | Optioneel | N.v.t. | Optioneel | Vulkanen toegang webhook. | N.v.t. |
| vulkanen-controllers | Kubernetes-implementatie | Optioneel | N.v.t. | Optioneel | De levenscyclus van Azure Machine Learning-trainingstaakpods beheren. | N.v.t. |
| vulkaan-scheduler | Kubernetes-implementatie | Optioneel | N.v.t. | Optioneel | Wordt gebruikt voor taakplanning binnen het cluster. | N.v.t. |
| fluent-bit | Kubernetes daemonset | ✓ | ✓ | ✓ | Verzamel het systeemlogboek van de onderdelen. | Upload het systeemlogboek van de onderdelen naar de cloud. |
| {EXTENSION-NAME}-dcgm-exporter | Kubernetes daemonset | Optioneel | Optioneel | Optioneel | dcgm-exporteur toont GPU-metrische gegevens voor Prometheus. | N.v.t. |
| nvidia-device-plugin-daemonset | Kubernetes daemonset | Optioneel | Optioneel | Optioneel | nvidia-device-plugin-daemonset maakt GPU's beschikbaar op elk knooppunt van uw cluster | N.v.t. |
| prometheus-prom-prometheus | Kubernetes StatefulSet | ✓ | ✓ | ✓ | Verzamel en verstuur taakstatistieken naar de cloud. | Verzend metrische gegevens van taken, zoals cpu/gpu/geheugengebruik naar de cloud. |
Belangrijk
- De Azure Relay resource bevindt zich in dezelfde resourcegroep als de Arc-clusterresource. Het wordt gebruikt om te communiceren met het Kubernetes-cluster. Wijzigen ervan maakt gekoppelde compute-doelen ongeldig.
- Standaard worden de implementatieresources willekeurig geïmplementeerd op een of meer knooppunten van het cluster en worden daemonset-resources geïmplementeerd op alle knooppunten. Als u de implementatie van de extensie wilt beperken tot specifieke knooppunten, gebruikt u de
nodeSelectorconfiguratie-instelling die wordt beschreven in de tabel met configuratie-instellingen.
Notitie
-
{EXTENSION-NAME}: is de extensienaam die u opgeeft met behulp van de
az k8s-extension create --nameCLI-opdracht.
Azure Machine Learning CLI-extensie beheren
Een Azure Machine Learning-extensie bijwerken, weergeven, tonen en verwijderen.
- Zie Clusterextensies implementeren en beheren voor AKS-clusters zonder Azure Arc verbonden.
- Zie Clusterextensies voor Kubernetes met Azure Arc implementeren en beheren voor Kubernetes met Azure Arc.