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.
- Pokud je clusterem služby Azure RedHat OpenShift (ARO) nebo clusterem OpenShift Container Platform (OCP), musíte splňovat další požadované kroky popsané v referenčních informacích ke konfiguraci článku o clusteru Kubernetes.
- 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í
- Azure Machine Learning nepodporuje použití instančního objektu s AKS. Cluster AKS musí místo toho používat spravovanou identitu . Podporuje se spravovaná identita přiřazená systémem i spravovaná identita přiřazená uživatelem. Další informace najdete v tématu Použití spravované identity ve službě Azure Kubernetes Service.
- Když se instanční objekt použitý v clusteru AKS převede na použití spravované identity, je před instalací rozšíření potřeba odstranit a znovu vytvořit všechny fondy uzlů, nikoli přímo aktualizovat.
- Azure Machine Learning nepodporuje zakázání místních účtů pro AKS. Při nasazení clusteru AKS jsou místní účty ve výchozím nastavení povolené.
- Pokud má váš cluster AKS povolený autorizovaný rozsah IP adres pro přístup k serveru rozhraní API, povolte rozsahy IP adres řídicí roviny služby Azure Machine Learning pro cluster AKS. Řídicí rovina služby Azure Machine Learning se nasazuje napříč spárovanými oblastmi a nasazuje odvozovací pody v clusteru AKS. Bez přístupu k serveru API nelze odvozovací pody nasadit. Při povolování rozsahů IP adres v clusteru AKS použijte rozsahy IP adres pro obě spárované oblasti.
- Azure Machine Learning nepodporuje připojení clusteru AKS mezi předplatnými. Pokud máte cluster AKS v jiném předplatném, musíte ho nejprve připojit ke službě Azure-Arc a zadat ve stejném předplatném jako pracovní prostor Azure Machine Learning.
- Azure Machine Learning nezaručuje podporu všech funkcí fáze Preview v AKS. Například identita podu Microsoft Entra není podporovaná.
- Pokud jste postupovali podle kroků z dokumentu Azure Machine Learning AKS verze 1 k vytvoření nebo připojení clusteru AKS jako odvozování, před pokračováním v dalším kroku pomocí následujícího odkazu vyčistíte starší prostředky související s azureml-fe.
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 |
loadBalancer nodePort 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 sslSecret YAML 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=value2 odpovídajícím způsobem je použítnodeSelector.key1=value1 nodeSelector.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 True ho 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
aenableInference=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é zadatinferenceRouterServiceType
nastavení konfigurace proazureml-fe
.azureml-fe
lze nasadit jedním z následujícíchinferenceRouterServiceType
způ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 kontaktovatazureml-fe
už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 proazureml-fe
. - Zadejte
ClusterIP
.azureml-fe
Zveřejňuje interní IP adresu clusteru a umožňujeazureml-fe
přístup pouze z clusteru. Abyazureml-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 proazureml-fe
.
- Zadejte
- 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 clusteryazureml-fe
, které mají tři uzly nebo více. Pokud má váš cluster méně než 3 uzly, nastavteinferenceRouterHA=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í asslCertPemFile
nastavení chráněnýchsslKeyPemFile
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=True
konfigurace .
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
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>
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í.
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
- Informace o clusteru AKS bez připojení Azure Arc najdete v tématu Nasazení a správa rozšíření clusteru.
- Informace o nasazení a správě rozšíření clusteru Kubernetes s podporou Azure Arc najdete v tématu Nasazení a správa rozšíření clusteru Kubernetes s podporou Azure Arc.