Anteckning
Å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.
För att ditt AKS- eller Arc Kubernetes-kluster ska kunna köra träningsjobb eller slutsatsdragningsarbetsbelastningar måste du först distribuera Azure Machine Learning-tillägget i ett AKS- eller Arc Kubernetes-kluster. Azure Machine Learning-tillägget bygger på klustertillägget för AKS och klustertillägget eller Arc Kubernetes, och dess livscykel kan enkelt hanteras med Azure CLI k8s-extension.
I den här artikeln kan du lära dig:
- 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 har använt klustertillägg måste du registrera KubernetesConfiguration-tjänstprovidern.
- Eller så är ett Arc Kubernetes-kluster 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.
- 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.24.0 eller senare.
- Installera eller uppgradera Azure CLI-tillägget k8s-extensiontill version 1.2.3 eller senare.
Begränsningar
- 
              Användning av tjänstens huvudnamn med AKS stödsinte av Azure Machine Learning. 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 ditt AKS-kluster som används tjänstens huvudnamn konverteras för att använda hanterad identitet måste alla nodpooler tas bort och återskapas innan tillägget installeras, i stället för att uppdateras direkt.
 
- Att inaktivera lokala konton för AKS stöds inte av Azure Machine Learning. När AKS-klustret distribueras aktiveras lokala konton som standard.
- Om AKS-klustret har ett auktoriserat IP-intervall aktiverat för åtkomst till API-servern aktiverar du IP-intervallen för Azure Machine Learning-kontrollplanet 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 anslutning av ett AKS-kluster mellan prenumerationer. Om du har ett AKS-kluster i en annan prenumeration måste du först ansluta det till Azure-Arc och ange det i samma prenumeration som din Azure Machine Learning-arbetsyta.
- Azure Machine Learning garanterar inte stöd för alla förhandsversionsstegsfunktioner i AKS. Microsoft Entra-poddidentitet stöds till exempel inte.
- Om du har följt stegen från Azure Machine Learning AKS v1-dokumentet för att skapa eller bifoga AKS som slutsatsdragningskluster använder du följande länk för att rensa de äldre azureml-fe-relaterade resurserna innan du fortsätter nästa steg.
Granska konfigurationsinställningarna för Azure Machine Learning-tillägget
Du kan använda Azure Machine Learning CLI-kommandot k8s-extension create för att distribuera Azure Machine Learning-tillägget. MED CLI k8s-extension create kan du ange en uppsättning konfigurationsinställningar i key=value format med hjälp av --config eller --config-protected parameter. Följande är listan över tillgängliga konfigurationsinställningar som ska anges under distributionen av Azure Machine Learning-tillägget.
| Nyckelnamn för konfigurationsinställning | beskrivning | Utbildning | Slutsatsdragning | Utbildning och slutsatsdragning | 
|---|---|---|---|---|
| enableTraining | TrueellerFalse, standardFalse. 
              Måste anges tillTrueför distribution av Azure Machine Learning-tillägg med maskininlärningsmodellträning och stöd för batchbedömning. | ✓ | Ej tillämpligt | ✓ | 
| enableInference | TrueellerFalse, standardFalse.  
              Måste anges tillTrueför distribution av Azure Machine Learning-tillägg med stöd för Machine Learning-slutsatsdragning. | Ej tillämpligt | ✓ | ✓ | 
| allowInsecureConnections | TrueellerFalse, standardFalse. 
              Kan ställas in på för attTrueanvända slutsatsdragning av HTTP-slutpunkter för utveckling eller testning. | Ej tillämpligt | Valfritt | Valfritt | 
| inferenceRouterServiceType | loadBalancer,nodePortellerclusterIP.  
              Krävs omenableInference=True. | Ej tillämpligt | ✓ | ✓ | 
| internalLoadBalancerProvider | Den här konfigurationen gäller endast för Azure Kubernetes Service-kluster (AKS) nu. Ange till azureför att tillåta inferensroutern med hjälp av intern lastbalanserare. | Ej tillämpligt | Valfritt | Valfritt | 
| sslSecret | Namnet på Kubernetes-hemligheten azuremli namnområdet. Den här konfigurationen används för att lagracert.pem(PEM-kodad TLS/SSL-certifikat) ochkey.pem(PEM-kodad TLS/SSL-nyckel), som krävs för slutsatsdragning av HTTPS-slutpunktsstöd närallowInsecureConnectionsär inställt påFalse. En YAML-exempeldefinition avsslSecretfinns i Konfigurera sslSecret. Använd den här konfigurationen eller en kombination avsslCertPemFileochsslKeyPemFileskyddade konfigurationsinställningar. | Ej tillämpligt | Valfritt | Valfritt | 
| sslCname | En TLS/SSL CNAME används av slutsatsdragningens HTTPS-slutpunkt. 
              Krävs om allowInsecureConnections=False | Ej tillämpligt | Valfritt | Valfritt | 
| inferenceRouterHA | TrueellerFalse, standardTrue. 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 tillFalseom 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-/slutsatsdragningsarbetsbelastningar till specifika noder med etiketten key1=value1ochkey2=value2, använder dunodeSelector.key1=value1motsvarandenodeSelector.key2=value2. | Valfritt | Valfritt | Valfritt | 
| installNvidiaDevicePlugin | TrueellerFalse, standardFalse. 
              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 tillTrue, för att installera den, men se till att uppfylla kraven. | Valfritt | Valfritt | Valfritt | 
| installPromOp | TrueellerFalse, standardTrue. Azure Machine Learning-tillägget behöver prometheus-operatorn för att hantera prometheus. Ange till för attFalseå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 | TrueellerFalse, standardTrue. Azure Machine Learning-tillägget behöver vulkanschemaläggare för att schemalägga jobbet. Ställ in på för attFalseåteranvända befintlig vulkanschemaläggare. Mer information om hur du återanvänder den befintliga vulkanschemaläggaren finns i Återanvända vulkanschemaläggare | Valfritt | Ej tillämpligt | Valfritt | 
| installDcgmExporter | TrueellerFalse, standardFalse. Dcgm-exporter kan exponera GPU-mått för Azure Machine Learning-arbetsbelastningar, som kan övervakas i Azure Portal. AngeinstallDcgmExportertill för attTrueinstallera dcgm-exporter. Men om du vill använda din egen dcgm-exporter kan du läsa DCGM-exportören | 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-kodad), som krävs för distribution av Azure Machine Learning-tillägg med slutsatsdragning https-slutpunktsstöd, 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 batchinferensarbetsbelastning anger du enableTraining=True
- Ange endast för slutsatsdragningsarbetsbelastning 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 kommer att kunna 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ägget via HTTP eller HTTPS.
- Skriv ClusterIP. Exponerasazureml-fepå en klusterintern IP-adress och kanazureml-feendast 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ägget 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 . I utvecklings- eller testsyfte tillhandahålls HTTP-stödallowInsecureConnections=True
Distribution av Azure Machine Learning-tillägg – CLI-exempel och Azure Portal
Om du vill distribuera Azure Machine Learning-tillägget med CLI använder du az k8s-extension create kommando som skickar in värden för de obligatoriska parametrarna.
Vi listar fyra typiska distributionsscenarier för tillägg som referens. 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 konceptbevis för att köra alla typer av ML-arbetsbelastningar, dvs. för att köra träningsjobb eller distribuera modeller som online-/batchslutpunkter - För distribution av Azure Machine Learning-tillägg i AKS-kluster måste du ange - managedClustersvärdet för- --cluster-typeparametern. 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 cluster
- Använd Arc Kubernetes-kluster utanför Azure för ett snabbt konceptbevis för att endast köra träningsjobb - För distribution av Azure Machine Learning-tillägg i Arc Kubernetes-klustret måste du ange - connectedClustersvärdet för- --cluster-typeparametern. 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 cluster
- Aktivera ett AKS-kluster i Azure för produktionsträning och slutsatsdragningsarbetsbelastning För distribution av Azure Machine Learning-tillägg i AKS måste du ange - managedClustersvärdet för- --cluster-typeparametern. 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 cluster
- Aktivera ett Arc Kubernetes-kluster var som helst för produktionsträning och slutsatsdragningsarbetsbelastning med NVIDIA GPU:er - För distribution av Azure Machine Learning-tillägget i Arc Kubernetes-klustret måste du ange - connectedClustersvärdet för- --cluster-typeparametern. 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 följande CLI-kommando för att kontrollera information om Azure Machine Learning-tillägget: - 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". Observera att det kan visa "provisioningState": "Väntar" under de första minuterna. 
- Om provisioningState visar Lyckades kör du följande kommando på datorn med kubeconfig-filen riktad mot klustret för att kontrollera att alla poddar under "azureml"-namnområdet är i tillståndet "Körs": - kubectl get pods -n azureml
Granska Azure Machine Learning-tilläggskomponenten
När distributionen av Azure Machine Learning-tillägget har slutförts kan du använda kubectl get deployments -n azureml för att se en lista över resurser som skapats i klustret. Den består vanligtvis av en delmängd av följande resurser per angivna konfigurationsinställningar.
| Resursnamn | Resurstyp | Utbildning | Slutsatsdragning | Utbildning och slutsatsdragning | beskrivning | Kommunikation med molnet | 
|---|---|---|---|---|---|---|
| reläserver | Kubernetes-distribution | ✓ | ✓ | ✓ | Relay-servern skapas endast för Arc 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-distribution | ✓ | ✓ | ✓ | Gatewayen används för att kommunicera och skicka data fram och tillbaka. | Skicka noder och klusterresursinformation till molntjänster. | 
| aml-operatör | Kubernetes-distribution | ✓ | 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-distribution | ✓ | ✓ | ✓ | Hantera konfigurationen för Prometheus | Ej tillämpligt | 
| {EXTENSION-NAME}-kube-state-metrics | Kubernetes-distribution | ✓ | ✓ | ✓ | 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-distribution | 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-distribution | 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-distribution | Ej tillämpligt | ✓ | ✓ | Klientdelskomponenten som dirigerar inkommande slutsatsdragningsbegäranden till distribuerade tjänster. | Skicka tjänstloggar till Azure Blob. | 
| inference-operator-controller-manager | Kubernetes-distribution | Ej tillämpligt | ✓ | ✓ | Hantera livscykeln för slutpunkter för slutsatsdragning. | Ej tillämpligt | 
| vulkan-antagning | Kubernetes-distribution | Valfritt | Ej tillämpligt | Valfritt | Vulkanantagning webhook. | Ej tillämpligt | 
| vulkankontrollanter | Kubernetes-distribution | Valfritt | Ej tillämpligt | Valfritt | Hantera livscykeln för Azure Machine Learning-träningsjobbpoddar. | Ej tillämpligt | 
| volcano-scheduler | Kubernetes-distribution | 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 systemlogg. | 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!
- Azure Relay-resursen finns under samma resursgrupp som Arc-klusterresursen. Det används för att kommunicera med Kubernetes-klustret och om du ändrar dem bryts anslutna beräkningsmål.
- Som standard distribueras kubernetes-distributionsresurserna slumpmässigt till 1 eller fler noder i klustret och daemonsetresurser distribueras till ALLA noder. Om du vill begränsa tilläggsdistributionen till specifika noder använder nodeSelectordu konfigurationsinställningen som beskrivs i tabellen konfigurationsinställningar.
Kommentar
- 
              {EXTENSION-NAME}: är det tilläggsnamn som angetts med az k8s-extension create --nameCLI-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-anslutning finns i Distribuera och hantera klustertillägg.
- Azure Arc-aktiverade Kubernetes finns i Distribuera och hantera Azure Arc-aktiverade Kubernetes-klustertillägg.
 
              
               
              
               
              
               
              
              