Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du vill aktivera ditt Azure Kubernetes Service (AKS)- eller Azure Arc-aktiverade Kubernetes-kluster för att köra träningsjobb eller slutsatsdragningsarbetsbelastningar distribuerar du först Azure Machine Learning-tillägget. Azure Machine Learning-tillägget är ett Standard-klustertillägg för AKS och cluster-tillägget för Azure Arc-aktiverade Kubernetes. Du kan hantera livscykeln med hjälp av Azure CLI k8s-extension.
I den här artikeln lär du dig mer om:
- Förutsättningar
- Begränsningar
- Granska konfigurationsinställningarna för Azure Machine Learning-tillägg
- Distributionsscenarier för Azure Machine Learning-tillägg
- Verifiera distribution för Azure Machine Learning-tillägg
- Granska Azure Machine Learning-tilläggskomponenter
- Hantera Azure Machine Learning-tillägg
Förutsättningar
- Ett AKS-kluster som körs i Azure. Om du inte tidigare använde klustertillägg måste du registrera KubernetesConfiguration-tjänstprovidern.
- Eller ett Azure Arc-aktiverat Kubernetes-kluster som är igång. Följ anvisningarna i ansluta befintliga Kubernetes-kluster till Azure Arc.
- Om klustret är ett Azure RedHat OpenShift-tjänstkluster (ARO) eller Ett OCP-kluster (OpenShift Container Platform) måste du uppfylla andra nödvändiga steg som beskrivs i artikeln Referens för att konfigurera Kubernetes-kluster .
- I produktionssyfte måste Kubernetes-klustret ha minst 4 vCPU-kärnor och 14 GB minne. Mer information om resursinformation och rekommendationer för klusterstorlek finns i Rekommenderad resursplanering.
- Ett kluster som körs bakom en utgående proxyserver eller brandvägg behöver extra nätverkskonfigurationer.
- Installera eller uppgradera Azure CLI till version 2.51.0 eller senare.
- Installera eller uppgradera Azure CLI-tillägget
k8s-extensiontill version 1.2.3 eller senare.
Begränsningar
- Azure Machine Learning stöder inteatt använda ett tjänstens huvudnamn med AKS. AKS-klustret måste använda en hanterad identitet i stället. Både systemtilldelad hanterad identitet och användartilldelad hanterad identitet stöds. Mer information finns i Använda en hanterad identitet i Azure Kubernetes Service.
- När du konverterar AKS-klustret från att använda ett huvudnamn för tjänsten till att använda hanterad identitet måste du ta bort och återskapa alla nodpooler innan du installerar tillägget. Du kan inte uppdatera nodpoolerna direkt.
- Azure Machine Learning stöder inteatt inaktivera lokala konton för AKS. När du distribuerar AKS-klustret aktiveras lokala konton som standard.
- Om AKS-klustret har ett auktoriserat IP-intervall aktiverat för åtkomst till API-servern måste du aktivera AZURE MACHINE LEARNING kontrollplanets IP-intervall för AKS-klustret. Azure Machine Learning-kontrollplanet distribueras över parade regioner. Utan åtkomst till API-servern kan maskininlärningspodarna inte distribueras. Använd IP-intervallen för båda kopplade regionerna när du aktiverar IP-intervallen i ett AKS-kluster.
- Azure Machine Learning stöder inte att ansluta ett AKS-kluster över prenumerationsgränser. Om du har ett AKS-kluster i en annan prenumeration måste du först ansluta det till Azure Arc och ange i samma prenumeration som din Azure Machine Learning-arbetsyta.
- Azure Machine Learning garanterar inte stöd för alla förhandsversionsstegsfunktioner i AKS. Till exempel stöds inte Microsoft Entra podhanterad identitet (föråldrad). Använd Microsoft Entra Workload ID i stället.
- Om du har följt stegen i dokumentet Azure Machine Learning AKS v1 för att skapa eller bifoga AKS som ett slutsatsdragningskluster använder du följande länk för att rensa upp de äldre azureml-fe-relaterade resurserna innan du fortsätter nästa steg.
Granska konfigurationsinställningarna för Azure Machine Learning-tillägget
Använd Azure CLI-kommandot az k8s-extension create för att distribuera Azure Machine Learning-tillägget. Kommandot az k8s-extension create accepterar konfigurationsinställningar som blankstegsavgränsade key=value par via parametern --config eller --config-protected . I följande tabell visas de tillgängliga konfigurationsinställningar som du kan ange under distributionen.
| Nyckelnamn för konfigurationsinställning | beskrivning | Utbildning | Slutsatsdragning | Utbildning och slutsatsdragning |
|---|---|---|---|---|
enableTraining |
True eller False, standard False.
Måste anges till True för distribution av Azure Machine Learning-tillägg med maskininlärningsmodellträning och stöd för batchbedömning. |
✓ | Ej tillämpligt | ✓ |
enableInference |
True eller False, standard False.
Måste anges till True för distribution av Azure Machine Learning-tillägg med stöd för strojové učenie-slutsatsdragning. |
Ej tillämpligt | ✓ | ✓ |
allowInsecureConnections |
True eller False, standard False.
Kan ställas in på True för att använda inferens-HTTP-endpoints för utvecklings- eller teständamål. |
Ej tillämpligt | Valfritt | Valfritt |
inferenceRouterServiceType |
loadBalancer, nodePort, eller clusterIP.
Krävs om enableInference=True. |
Ej tillämpligt | ✓ | ✓ |
internalLoadBalancerProvider |
Den här konfigurationen gäller endast för Azure Kubernetes Service-kluster (AKS) nu. Ange azure för att låta inferensroutern använda den interna lastbalanseraren. |
Ej tillämpligt | Valfritt | Valfritt |
sslSecret |
Namnet på Kubernetes-hemligheten i namnrymden azureml. Den här konfigurationen används för att lagra cert.pem (PEM-kodad TLS/SSL-certifikat) och key.pem (PEM-kodad TLS/SSL-nyckel), som krävs för slutsatsdragning av HTTPS-slutpunktsstöd när allowInsecureConnections är inställt på False. En YAML-exempeldefinition av sslSecretfinns i Konfigurera sslSecret. Använd den här konfigurationen eller en kombination av sslCertPemFile och sslKeyPemFile skyddade konfigurationsinställningar. |
Ej tillämpligt | Valfritt | Valfritt |
sslCname |
Ett TLS/SSL-CNAME används av HTTPS-slutpunkten för inferens.
Krävs om allowInsecureConnections=False |
Ej tillämpligt | Valfritt | Valfritt |
inferenceRouterHA |
True eller False, standard True. Som standard distribuerar Azure Machine Learning-tillägget tre slutsatsdragningsrouterrepliker för hög tillgänglighet, vilket kräver minst tre arbetsnoder i ett kluster. Ange till False om klustret har färre än tre arbetsnoder, i det här fallet distribueras endast en slutsatsdragningsroutertjänst. |
Ej tillämpligt | Valfritt | Valfritt |
nodeSelector |
Som standard distribueras de distribuerade kubernetes-resurserna och dina maskininlärningsarbetsbelastningar slumpmässigt till en eller flera noder i klustret, och DaemonSet-resurser distribueras till ALLA noder. Om du vill begränsa tilläggsdistributionen och dina tränings- och inferensarbetsbelastningar till specifika noder med etiketterna key1=value1 och key2=value2, använder du nodeSelector.key1=value1 respektive nodeSelector.key2=value2. |
Valfritt | Valfritt | Valfritt |
installNvidiaDevicePlugin |
True eller False, standard False.
NVIDIA Device Plugin krävs för ML-arbetsbelastningar på NVIDIA GPU-maskinvara. Distributionen av Azure Machine Learning-tillägget installerar som standard inte NVIDIA Device Plugin oavsett om Kubernetes-klustret har GPU-maskinvara eller inte. Användaren kan ange den här inställningen till True, för att installera den, men se till att uppfylla kraven. |
Valfritt | Valfritt | Valfritt |
installPromOp |
True eller False, standard True. Azure Machine Learning-tillägget behöver prometheus-operatorn för att hantera prometheus. Ställ in på False för att återanvända den befintliga Prometheus-operatorn. Mer information om hur du återanvänder den befintliga prometheus-operatorn finns i Återanvända prometheus-operatorn |
Valfritt | Valfritt | Valfritt |
installVolcano |
True eller False, standard True. Azure Machine Learning-tillägget behöver vulkanschemaläggare för att schemalägga jobbet. Ställ in på False för att återanvända den befintliga Volcano-schemaläggaren. Mer information om hur du återanvänder den befintliga vulkanschemaläggaren finns i Återanvända vulkanschemaläggare |
Valfritt | Ej tillämpligt | Valfritt |
installDcgmExporter |
True eller False, standard False. Dcgm-exporter kan exponera GPU-mått för Azure Machine Learning-arbetsbelastningar, som kan övervakas i Azure Portal. Ange installDcgmExporter till True för att installera dcgm-exporter. Men om du vill använda din egen dcgm-exporter, se DCGM exporter |
Valfritt | Valfritt | Valfritt |
| Nyckelnamn för konfigurationsskyddad inställning | beskrivning | Utbildning | Slutsatsdragning | Utbildning och slutsatsdragning |
|---|---|---|---|---|
sslCertPemFile, sslKeyPemFile |
Sökväg till TLS/SSL-certifikat och nyckelfil (PEM-kodade), som krävs för distribuering av Azure Machine Learning-tillägget med stöd för HTTPS-slutpunkter för inferens, när allowInsecureConnections är inställt på False.
Obs! PEM-fil med lösenordsfras skyddad stöds inte |
Ej tillämpligt | Valfritt | Valfritt |
Som du ser i tabellen med konfigurationsinställningar kan du med kombinationerna av olika konfigurationsinställningar distribuera Azure Machine Learning-tillägget för olika ML-arbetsbelastningsscenarier:
- För träningsjobb och arbetsbelastning för batchinferens anger du
enableTraining=True - Ange detta endast för inferensarbetsbelastning
enableInference=True - För alla typer av ML-arbetsbelastningar anger du både
enableTraining=TrueochenableInference=True
Om du planerar att distribuera Azure Machine Learning-tillägget för inferensarbetsbelastning i realtid och vill ange enableInference=Truebör du tänka på följande konfigurationsinställningar som rör arbetsbelastningen för slutsatsdragning i realtid:
-
azureml-ferouter-tjänsten krävs för inferensstöd i realtid och du måste angeinferenceRouterServiceTypekonfigurationsinställningen förazureml-fe.azureml-fekan distribueras med något av följandeinferenceRouterServiceType:- Skriv
loadBalancer. Exponerarazureml-feexternt med hjälp av en molnleverantörs lastbalanserare. Om du vill ange det här värdet kontrollerar du att klustret stöder etablering av lastbalanserare. Observera att de flesta lokala Kubernetes-kluster kanske inte stöder extern lastbalanserare. - Skriv
nodePort. Exponerarazureml-fepå varje nods IP-adress på en statisk port. Du kan kontaktaazureml-fe, utanför klustret, genom att begära<NodeIP>:<NodePort>. Med hjälp avnodePortkan du också konfigurera en egen belastningsutjämningslösning och TLS/SSL-avslutning förazureml-fe. Mer information om hur du konfigurerar din egen ingress finns i Integrera andra ingresskontrollanter med Azure Machine Learning tillägg via HTTP eller HTTPS. - Skriv
clusterIP. Exponerarazureml-fevia en klusterintern IP-adress och gör attazureml-feendast kan nås inifrån klustret. Förazureml-featt kunna hantera slutsatsdragningsbegäranden som kommer utanför klustret måste du konfigurera en egen lastbalanseringslösning och TLS/SSL-avslutning förazureml-fe. Mer information om hur du konfigurerar din egen ingress finns i Integrera andra ingresskontrollanter med Azure Machine Learning tillägg via HTTP eller HTTPS.
- Skriv
- För att säkerställa hög tillgänglighet för routningstjänsten
azureml-feskapar Azure Machine Learning-tilläggsdistributionen som standard tre repliker avazureml-feför kluster med tre noder eller mer. Om klustret har färre än 3 noder anger duinferenceRouterHA=False. - Du vill också överväga att använda HTTPS för att begränsa åtkomsten till modellslutpunkter och skydda de data som klienter skickar. För detta ändamål måste du ange antingen
sslSecretkonfigurationsinställning eller kombination avsslKeyPemFileochsslCertPemFilekonfigurationsskyddade inställningar. - Som standard förväntar sig distributionen av Azure Machine Learning-tillägget konfigurationsinställningar för HTTPS-stöd . För utvecklings- eller teständamål kan stöd för HTTP enkelt tillhandahållas via konfigurationsinställningen
allowInsecureConnections=True.
Distribution av Azure Machine Learning-tillägg – CLI-exempel och Azure Portal
Om du vill distribuera Azure Machine Learning-tillägget med hjälp av CLI använder du kommandot az k8s-extension create och anger värden för de obligatoriska parametrarna.
I följande lista beskrivs fyra vanliga distributionsscenarier för tillägg. Om du vill distribuera tillägget för din produktionsanvändning läser du noggrant den fullständiga listan med konfigurationsinställningar.
Använd AKS-kluster i Azure för ett snabbt koncepttest för att köra alla slags ML-arbetsbelastningar, till exempel för att köra träningsjobb eller driftsätta modeller som online- eller batchslutpunkter
För Azure Machine Learning tilläggsdistribution i AKS-kluster anger du värdet
managedClustersför parametern--cluster-type. Kör följande Azure CLI-kommando för att distribuera Azure Machine Learning-tillägget: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 clusterAnvänd ett Azure Arc-aktiverat Kubernetes-kluster utanför Azure för att få ett snabbt konceptbevis för att endast köra träningsjobb
För Azure Machine Learning tilläggsdistribution på ett Azure Arc-aktiverat Kubernetes kluster anger du
connectedClustersvärde för parametern--cluster-type. Kör följande Azure CLI-kommando för att distribuera Azure Machine Learning-tillägget: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 clusterEnable an AKS cluster in Azure for production training and inference workload För Azure Machine Learning tilläggsdistribution på AKS anger du
managedClustersvärde för parametern--cluster-type. Förutsatt att klustret har fler än tre noder och du använder en offentlig Azure-lastbalanserare och HTTPS för slutsatsdragningsarbetsbelastningsstöd. Kör följande Azure CLI-kommando för att distribuera Azure Machine Learning-tillägget: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 clusterAktivera ett Azure Arc-aktiverat Kubernetes-kluster var som helst för produktionsträning och slutsatsdragningsarbetsbelastning med NVIDIA GPU:er
För Azure Machine Learning tilläggsdistribution på ett Azure Arc-aktiverat Kubernetes kluster anger du
connectedClustersvärde för parametern--cluster-type. Förutsatt att klustret har fler än tre noder använder du en NodePort-tjänsttyp och HTTPS för slutsatsdragningsarbetsbelastningsstöd, kör följande Azure CLI-kommando för att distribuera Azure Machine Learning-tillägget: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
Verifiera distribution för Azure Machine Learning-tillägg
Kör det tillämpliga CLI-kommandot för att kontrollera information om Azure Machine Learning-tillägget:
AKS
az k8s-extension show --name <extension-name> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <resource-group>Kubernetes aktiverade via Azure Arc
az k8s-extension show --name <extension-name> --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <resource-group>I svaret letar du efter
"name"och"provisioningState": "Succeeded". Det kan visas"provisioningState": "Pending"under de första minuterna.Om provisioningState visar Succeeded, kör du följande kommando på din dator med kubeconfig-filen som pekar på ditt kluster för att kontrollera att alla poddar i namnområdet
azuremlär i tillståndetRunning:kubectl get pods -n azureml
Granska Azure Machine Learning-tilläggskomponenten
När distributionen av Azure Machine Learning-tillägget är klar använder du kubectl get deployments -n azureml för att se listan över resurser som skapats i klustret. Listan består vanligtvis av en delmängd av följande resurser, beroende på vilka konfigurationsinställningar du anger.
| Resursnamn | Resurstyp | Utbildning | Slutsatsdragning | Utbildning och slutsatsdragning | beskrivning | Kommunikation med molnet |
|---|---|---|---|---|---|---|
| reläserver | Kubernetes-driftsättning | ✓ | ✓ | ✓ | Distributionen skapar reläservern endast för Azure Arc-aktiverade Kubernetes-kluster, och inte i AKS-kluster. Relay-servern fungerar med Azure Relay för att kommunicera med molntjänsterna. | Ta emot begäran om jobbskapande, modelldistribution från molntjänsten; synkronisera jobbstatusen med molntjänsten. |
| portingång | Kubernetes-driftsättning | ✓ | ✓ | ✓ | Gatewayen används för att kommunicera och skicka data fram och tillbaka. | Skicka noder och klusterresursinformation till molntjänster. |
| aml-operatör | Kubernetes-driftsättning | ✓ | Ej tillämpligt | ✓ | Hantera livscykeln för träningsjobb. | Tokenutbyte med molntokentjänsten för autentisering och auktorisering av Azure Container Registry. |
| Mätvärdeskontrollhanterare | Kubernetes-driftsättning | ✓ | ✓ | ✓ | Hantera konfigurationen för Prometheus | Ej tillämpligt |
| {EXTENSION-NAME}-kube-state-metrics | Kubernetes-deployment | ✓ | ✓ | ✓ | Exportera klusterrelaterade mått till Prometheus. | Ej tillämpligt |
| {EXTENSION-NAME}-prometheus-operator | Kubernetes-distribution | Valfritt | Valfritt | Valfritt | Ge Kubernetes intern distribution och hantering av Prometheus och relaterade övervakningskomponenter. | Ej tillämpligt |
| amlarc-identity-controller | Kubernetes-driftsättning | Ej tillämpligt | ✓ | ✓ | Begära och förnya Azure Blob/Azure Container Registry-token via hanterad identitet. | Tokenutbyte med molntokentjänsten för autentisering och auktorisering av Azure Container Registry och Azure Blob som används av slutsatsdragning/modelldistribution. |
| amlarc-identity-proxy | Kubernetes-driftsättning | Ej tillämpligt | ✓ | ✓ | Begära och förnya Azure Blob/Azure Container Registry-token via hanterad identitet. | Tokenutbyte med molntokentjänsten för autentisering och auktorisering av Azure Container Registry och Azure Blob som används av slutsatsdragning/modelldistribution. |
| azureml-fe-v2 | Kubernetes-driftsättning | Ej tillämpligt | ✓ | ✓ | Klientdelskomponenten som dirigerar inkommande slutsatsdragningsbegäranden till distribuerade tjänster. | Skicka tjänstloggar till Azure Blob. |
| inference-operator-controller-manager | Kubernetes-driftsättning | Ej tillämpligt | ✓ | ✓ | Hantera livscykeln för slutpunkter för slutsatsdragning. | Ej tillämpligt |
| vulkaninmatning | Kubernetes-driftsättning | Valfritt | Ej tillämpligt | Valfritt | Vulkanantagning webhook. | Ej tillämpligt |
| vulkankontrollanter | Kubernetes-driftsättning | Valfritt | Ej tillämpligt | Valfritt | Hantera livscykeln för Azure Machine Learning-träningsjobbpoddar. | Ej tillämpligt |
| volcano-scheduler | Kubernetes-deployment | Valfritt | Ej tillämpligt | Valfritt | Används för att utföra schemaläggning av jobb i klustret. | Ej tillämpligt |
| fluent-bit | Kubernetes-daemonset | ✓ | ✓ | ✓ | Samla in komponenternas systemloggar. | Ladda upp komponenternas systemlogg till molnet. |
| {EXTENSION-NAME}-dcgm-exporter | Kubernetes DaemonSet | Valfritt | Valfritt | Valfritt | dcgm-exporter exponerar GPU-mått för Prometheus. | Ej tillämpligt |
| nvidia-device-plugin-daemonset | Kubernetes daemonset | Valfritt | Valfritt | Valfritt | nvidia-device-plugin-daemonset exponerar GPU:er på varje nod i klustret | Ej tillämpligt |
| prometheus-prom-prometheus | Kubernetes statefulset | ✓ | ✓ | ✓ | Samla in och skicka jobbmått till molnet. | Skicka jobbmått som cpu/gpu/minnesanvändning till molnet. |
Viktigt!
- Den Azure Relay resursen finns i samma resursgrupp som Arc-klusterresursen. Den används för att kommunicera med Kubernetes-klustret. Om du ändrar den slutar anslutna beräkningsmål att fungera.
- Som standard distribueras distributionsresurserna slumpmässigt till en eller flera noder i klustret och daemonsetresurser distribueras till alla noder. Om du vill begränsa tilläggsdistributionen till specifika noder använder du konfigurationsinställningen
nodeSelectorsom beskrivs i tabellen konfigurationsinställningar.
Kommentar
-
{EXTENSION-NAME}: är det tilläggsnamn som du anger med hjälp
az k8s-extension create --nameav CLI-kommandot.
Hantera Azure Machine Learning-tillägg
Uppdatera, lista, visa och ta bort ett Azure Machine Learning-tillägg.
- Information om AKS-kluster utan Azure Arc anslutna finns i Distribuera och hantera klustertillägg.
- Information om Azure Arc-aktiverade Kubernetes finns i Distribuera och hantera Azure Arc-aktiverade Kubernetes-klustertillägg.