Nasazení rozšíření Azure Machine Learning v clusteru Kubernetes AKS nebo Arc

Pokud chcete clusterU AKS nebo Arc Kubernetes povolit spouštění trénovacích úloh nebo úloh odvozování, musíte nejprve nasadit rozšíření Azure Machine Learning do clusteru AKS nebo Arc Kubernetes. Rozšíření Azure Machine Learning je založené na rozšíření clusteru pro AKS a rozšíření clusteru nebo Arc Kubernetes a jeho životní cyklus je možné snadno spravovat pomocí rozšíření Azure CLI k8s.

V tomto článku se dozvíte:

  • Požadavky
  • Omezení
  • Kontrola nastavení konfigurace rozšíření Azure Machine Learningu
  • Scénáře nasazení rozšíření Azure Machine Learning
  • Ověření nasazení rozšíření Azure Machine Learning
  • Kontrola komponent rozšíření Azure Machine Learning
  • Správa rozšíření Azure Machine Learning

Požadavky

  • Cluster AKS spuštěný v Azure. Pokud jste dříve nepoužívali rozšíření clusteru, musíte zaregistrovat poskytovatele služby KubernetesConfiguration.
  • Nebo je cluster Kubernetes Arc spuštěný a spuštěný. Postupujte podle pokynů v připojení existujícího clusteru Kubernetes ke službě Azure Arc.
  • Pro produkční účely musí mít cluster Kubernetes minimálně 4 jádra vCPU a 14 GB paměti. Další informace o podrobnostech o prostředcích a doporučeních velikosti clusteru najdete v tématu Doporučené plánování prostředků.
  • Cluster spuštěný za odchozím proxy serverem nebo bránou firewall potřebuje další konfigurace sítě.
  • Nainstalujte nebo upgradujte Azure CLI na verzi 2.24.0 nebo vyšší.
  • Nainstalujte nebo upgradujte rozšíření k8s-extension Azure CLI na verzi 1.2.3 nebo vyšší.

Omezení

Kontrola nastavení konfigurace rozšíření Azure Machine Learningu

K nasazení rozšíření Azure Machine Learning můžete použít příkaz k8s-extension create Azure Machine Learning CLI. Rozhraní příkazového řádku k8s-extension create umožňuje zadat sadu nastavení konfigurace ve key=value formátu pomocí --config nebo --config-protected parametru. Následuje seznam dostupných nastavení konfigurace, která se mají zadat během nasazení rozšíření Azure Machine Learning.

Název klíče nastavení konfigurace Popis Školení Odvozování Školení a odvozování
enableTraining True nebo False, výchozí False. Pro nasazení rozšíření Azure Machine Learning je potřeba nastavit True trénování modelu Machine Learning a podporu dávkového vyhodnocování.
enableInference True nebo False, výchozí False. Pro nasazení rozšíření Azure Machine Learning s podporou odvozování služby Machine Learning je potřeba nastavit True možnost nasazení rozšíření Azure Machine Learning.
allowInsecureConnections True nebo False, výchozí False. Pro účely vývoje nebo testování je možné nastavit použití True koncových bodů HTTP pro odvozování. Volitelné Volitelné
inferenceRouterServiceType loadBalancernodePort nebo clusterIP. Vyžaduje se , pokud enableInference=True.
internalLoadBalancerProvider Tato konfigurace se dá použít jenom pro cluster Azure Kubernetes Service (AKS). Nastavte na povolení azure odvozovacího směrovače pomocí interního nástroje pro vyrovnávání zatížení. Volitelné Volitelné
sslSecret Název tajného kódu Kubernetes v azureml oboru názvů. Tato konfigurace se používá k ukládání cert.pem (certifikát TLS/SSL s kódováním PEM) a key.pem (klíč TLS/SSL s kódováním PEM), které jsou vyžadovány pro podporu odvozování koncového bodu HTTPS, pokud allowInsecureConnections je nastavená hodnota False. Ukázkovou definici sslSecretYAML naleznete v tématu Konfigurace sslSecret. Použijte tuto konfiguraci nebo kombinaci a sslKeyPemFile chráněného sslCertPemFile nastavení konfigurace. Volitelné Volitelné
sslCname Koncový bod HTTPS odvozuje protokol TLS/SSL CNAME. Požadováno v případě, že allowInsecureConnections=False Volitelné Volitelné
inferenceRouterHA True nebo False, výchozí True. Ve výchozím nastavení nasadí rozšíření Azure Machine Learning tři repliky odvozovacího směrovače pro zajištění vysoké dostupnosti, které vyžadují alespoň tři pracovní uzly v clusteru. Nastavte, False pokud má váš cluster méně než tři pracovní uzly, v tomto případě je nasazena pouze jedna služba odvozovací směrovače. Volitelné Volitelné
nodeSelector Ve výchozím nastavení se nasazené prostředky Kubernetes a úlohy strojového učení náhodně nasazují do jednoho nebo více uzlů clusteru a prostředky daemonSet se nasazují do všech uzlů. Pokud chcete omezit nasazení rozšíření a úlohy trénování/odvozování na konkrétní uzly s popiskem key1=value1 a key2=value2odpovídajícím způsobem je použítnodeSelector.key1=value1nodeSelector.key2=value2. Volitelné Volitelné Volitelné
installNvidiaDevicePlugin True nebo False, výchozí False. Modul plug-in zařízení NVIDIA se vyžaduje pro úlohy ML na hardwaru NVIDIA GPU. Nasazení rozšíření Azure Machine Learning ve výchozím nastavení nenainstaluje modul plug-in ZAŘÍZENÍ NVIDIA bez ohledu na cluster Kubernetes má hardware GPU nebo ne. Uživatel může toto nastavení zadat, aby Trueho nainstaloval, ale ujistěte se, že splňuje požadavky. Volitelné Volitelné Volitelné
installPromOp True nebo False, výchozí True. Rozšíření Azure Machine Learning potřebuje operátora prometheus pro správu prometheus. Nastavte na False opětovné použití existujícího operátoru prometheus. Další informace o opětovném nasazení existujícího operátoru prometheus najdete v tématu opětovného nasazení operátoru prometheus. Volitelné Volitelné Volitelné
installVolcano True nebo False, výchozí True. Rozšíření Azure Machine Learning potřebuje plánovač sopek k naplánování úlohy. Nastavte na False opakované použití existujícího plánovače sopek. Další informace o opětovném nasazení existujícího plánovače sopek naleznete v tématu opětovného nasazení plánovače sopek. Volitelné Volitelné
installDcgmExporter True nebo False, výchozí False. Exportér Dcgm může zveřejnit metriky GPU pro úlohy Azure Machine Learning, které je možné monitorovat na webu Azure Portal. Nastavte installDcgmExporter na True instalaci nástroje dcgm-exportér. Pokud ale chcete využít vlastního vývozce dcgm, podívejte se na vývozce DCGM. Volitelné Volitelné Volitelné
Název klíče chráněného nastavením konfigurace Popis Školení Odvozování Školení a odvozování
sslCertPemFile, sslKeyPemFile Cesta k certifikátu TLS/SSL a souboru klíče (zakódovaný pomocí PEM) vyžadovaného pro nasazení rozšíření Azure Machine Learning s podporou odvozování koncového bodu HTTPS, pokud allowInsecureConnections je nastavená na False. Poznámka: Soubor PEM s chráněným heslem není podporovaný. Volitelné Volitelné

Jak vidíte v tabulce nastavení konfigurace, kombinace různých nastavení konfigurace umožňují nasadit rozšíření Azure Machine Learning pro různé scénáře úloh ML:

  • Pro trénovací úlohu a dávkové odvozování úlohy zadejte enableTraining=True
  • Pouze pro odvozování úlohy zadejte enableInference=True
  • Pro všechny druhy úloh ML zadejte obojí enableTraining=True a enableInference=True

Pokud plánujete nasadit rozšíření Azure Machine Learning pro úlohu odvozování v reálném čase a chcete určit enableInference=True, věnujte pozornost následujícím nastavením konfigurace souvisejícím s úlohou odvozování v reálném čase:

  • azureml-fe Služba směrovače je vyžadována pro podporu odvozování v reálném čase a je nutné zadat inferenceRouterServiceType nastavení konfigurace pro azureml-fe. azureml-fe lze nasadit jedním z následujících inferenceRouterServiceTypezpůsobů:
    • Zadejte LoadBalancer. azureml-fe Zveřejňuje externě pomocí nástroje pro vyrovnávání zatížení poskytovatele cloudu. Pokud chcete tuto hodnotu zadat, ujistěte se, že váš cluster podporuje zřizování nástroje pro vyrovnávání zatížení. Všimněte si, že většina místních clusterů Kubernetes nemusí podporovat externí nástroj pro vyrovnávání zatížení.
    • Zadejte NodePort. azureml-fe Zveřejňuje IP adresu každého uzlu na statickém portu. Budete moct kontaktovat azureml-feuživatele mimo cluster tím, že si vyžádáte <NodeIP>:<NodePort>. Použití NodePort také umožňuje nastavit vlastní řešení vyrovnávání zatížení a ukončení protokolu TLS/SSL pro azureml-fe.
    • Zadejte ClusterIP. azureml-fe Zveřejňuje interní IP adresu clusteru a umožňuje azureml-fe přístup pouze z clusteru. Aby azureml-fe bylo možné poskytovat žádosti o odvozování přicházející mimo cluster, musíte nastavit vlastní řešení vyrovnávání zatížení a ukončení protokolu TLS/SSL pro azureml-fe.
  • Kvůli zajištění vysoké dostupnosti azureml-fe směrovací služby ve výchozím nastavení vytvoří nasazení rozšíření Azure Machine Learning tři repliky pro clustery azureml-fe , které mají tři uzly nebo více. Pokud má váš cluster méně než 3 uzly, nastavte inferenceRouterHA=False.
  • Chcete také zvážit použití protokolu HTTPS k omezení přístupu ke koncovým bodům modelu a zabezpečení dat, která klienti odesílali. Pro tento účel byste museli zadat sslSecret buď nastavení konfigurace, nebo kombinaci nastavení chráněných konfigurací a sslCertPemFile nastavení chráněných sslKeyPemFile konfigurací.
  • Ve výchozím nastavení nasazení rozšíření Azure Machine Learning očekává nastavení konfigurace pro podporu protokolu HTTPS . Pro účely vývoje nebo testování je podpora PROTOKOLU HTTP pohodlně poskytována prostřednictvím nastavení allowInsecureConnections=Truekonfigurace .

Nasazení rozšíření Azure Machine Learningu – Příklady rozhraní příkazového řádku a Azure Portal

Pokud chcete nasadit rozšíření Azure Machine Learning pomocí rozhraní příkazového řádku, použijte az k8s-extension create příkaz předávající hodnoty povinných parametrů.

Uvádíme čtyři typické scénáře nasazení rozšíření pro referenci. Pokud chcete nasadit rozšíření pro produkční využití, pečlivě si přečtěte úplný seznam nastavení konfigurace.

  • Použití clusteru AKS v Azure k rychlému testování konceptu ke spuštění všech druhů úloh ML, tj. ke spouštění trénovacích úloh nebo k nasazení modelů jako online nebo dávkových koncových bodů

    V případě nasazení rozšíření Azure Machine Learning v clusteru AKS nezapomeňte zadat managedClusters hodnotu parametru --cluster-type . Spuštěním následujícího příkazu Azure CLI nasaďte rozšíření Azure Machine Learning:

    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
    
  • Použití clusteru Arc Kubernetes mimo Azure k rychlému testování konceptu ke spouštění trénovacích úloh

    Pro nasazení rozšíření Azure Machine Learning v clusteru Arc Kubernetes byste museli zadat connectedClusters hodnotu parametru --cluster-type . Spuštěním následujícího příkazu Azure CLI nasaďte rozšíření Azure Machine Learning:

    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
    
  • Povolení clusteru AKS v Azure pro produkční trénování a odvozování úloh pro nasazení rozšíření Azure Machine Learning v AKS nezapomeňte zadat managedClusters hodnotu parametru --cluster-type . Za předpokladu, že má váš cluster více než tři uzly, a pro podporu úloh odvozování použijete veřejný nástroj pro vyrovnávání zatížení Azure a PROTOKOL HTTPS. Spuštěním následujícího příkazu Azure CLI nasaďte rozšíření Azure Machine Learning:

    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
    
  • Povolení clusteru Arc Kubernetes kdekoli pro úlohy trénování a odvozování v produkčním prostředí pomocí grafických procesorů NVIDIA

    V případě nasazení rozšíření Azure Machine Learning v clusteru Arc Kubernetes nezapomeňte zadat connectedClusters hodnotu parametru --cluster-type . Za předpokladu, že váš cluster má více než tři uzly, použijete pro podporu úloh odvození typ služby NodePort a HTTPS, spuštěním následujícího příkazu Azure CLI nasaďte rozšíření Azure Machine Learning:

    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
    

Ověření nasazení rozšíření Azure Machine Learning

  1. Spuštěním následujícího příkazu rozhraní příkazového řádku zkontrolujte podrobnosti o rozšíření služby Azure Machine Learning:

    az k8s-extension show --name <extension-name> --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <resource-group>
    
  2. V odpovědi vyhledejte "name" a "provisioningState": "Succeeded". Všimněte si, že se během prvních několika minut může zobrazit stav zřizování: Čeká se na vyřízení.

  3. Pokud se stav zřizování zobrazí Úspěšně, spusťte na svém počítači následující příkaz se souborem kubeconfig, který odkazuje na váš cluster, a zkontrolujte, že všechny pody v oboru názvů azureml jsou ve stavu Spuštěno:

     kubectl get pods -n azureml
    

Kontrola komponent rozšíření Azure Machine Learning.

Po dokončení nasazení rozšíření Azure Machine Learning můžete zobrazit kubectl get deployments -n azureml seznam prostředků vytvořených v clusteru. Obvykle se skládá z podmnožina následujících prostředků podle zadaného nastavení konfigurace.

Název prostředku Typ prostředku Školení Odvozování Školení a odvozování Popis Komunikace s cloudem
relayserver Nasazení Kubernetes Předávací server se vytváří jenom pro cluster Arc Kubernetes, a ne v clusteru AKS. Relay server spolupracuje se službou Azure Relay ke komunikaci s cloudovými službami. Přijmout žádost o vytvoření úlohy, nasazení modelu z cloudové služby; synchronizujte stav úlohy s cloudovou službou.
brána Nasazení Kubernetes Brána se používá ke komunikaci a odesílání dat zpět a zpět. Odesílání informací o uzlech a prostředcích clusteru do cloudových služeb
aml-operator Nasazení Kubernetes Správa životního cyklu trénovacích úloh Výměna tokenů se službou cloudových tokenů pro ověřování a autorizaci služby Azure Container Registry
metrics-controller-manager Nasazení Kubernetes Správa konfigurace pro Prometheus
{EXTENSION-NAME}-kube-state-metrics Nasazení Kubernetes Exportujte metriky související s clusterem do prometheus.
{EXTENSION-NAME}-prometheus-operator Nasazení Kubernetes Volitelné Volitelné Volitelné Poskytněte nativní nasazení a správu Prometheus v Kubernetes a souvisejících komponentách monitorování.
amlarc-identity-controller Nasazení Kubernetes Vyžádání a obnovení tokenu Azure Blob nebo Azure Container Registry prostřednictvím spravované identity Výměna tokenů se službou cloudových tokenů pro ověřování a autorizaci služby Azure Container Registry a objektu blob Azure používaného při odvozování nebo nasazení modelu
amlarc-identity-proxy Nasazení Kubernetes Vyžádání a obnovení tokenu Azure Blob nebo Azure Container Registry prostřednictvím spravované identity Výměna tokenů se službou cloudových tokenů pro ověřování a autorizaci služby Azure Container Registry a objektu blob Azure používaného při odvozování nebo nasazení modelu
azureml-fe-v2 Nasazení Kubernetes Front-endová komponenta, která směruje příchozí požadavky na odvození do nasazených služeb. Odešle protokoly služby do azure Blob.
inference-operator-controller-manager Nasazení Kubernetes Správa životního cyklu koncových bodů odvozování
vstup do sopek Nasazení Kubernetes Volitelné Volitelné Webhook pro vstup do sopek.
kontrolery sopek Nasazení Kubernetes Volitelné Volitelné Spravujte životní cyklus podů trénovacích úloh služby Azure Machine Learning.
Plánovač Volcano Nasazení Kubernetes Volitelné Volitelné Slouží k plánování úloh v clusteru.
fluent-bit Démon Kubernetes Shromážděte systémový protokol komponent. Nahrajte systémový protokol komponent do cloudu.
{EXTENSION-NAME}-dcgm-exportér Démon Kubernetes Volitelné Volitelné Volitelné Dcgm-exportér zveřejňuje metriky GPU pro Prometheus.
nvidia-device-plugin-daemonset Démon Kubernetes Volitelné Volitelné Volitelné nvidia-device-plugin-daemonset zveřejňuje gpu na každém uzlu clusteru.
prometheus-prom-prometheus Stavová sada Kubernetes Shromážděte a odesílejte metriky úloh do cloudu. Odesílání metrik úloh, jako je využití procesoru, gpu nebo paměti do cloudu

Důležité

  • Prostředek Azure Relay je ve stejné skupině prostředků jako prostředek clusteru Arc. Používá se ke komunikaci s clusterem Kubernetes a jejich úpravám se přeruší připojené cílové výpočetní objekty.
  • Ve výchozím nastavení se prostředky nasazení Kubernetes náhodně nasazují na 1 nebo více uzlů clusteru a prostředky démona se nasazují do všech uzlů. Pokud chcete omezit nasazení rozšíření na konkrétní uzly, použijte nodeSelector nastavení konfigurace popsané v tabulce nastavení konfigurace.

Poznámka:

  • {EXTENSION-NAME}: je název rozšíření zadaný příkazem az k8s-extension create --name rozhraní příkazového řádku.

Správa rozšíření Azure Machine Learning

Aktualizace, výpis, zobrazení a odstranění rozšíření Azure Machine Learning

Další kroky