Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para habilitar seu cluster do AKS (Serviço de Kubernetes do Azure) ou do Kubernetes habilitado para Azure Arc a executar trabalhos de treinamento ou cargas de trabalho de inferência, implante primeiro a extensão do Azure Machine Learning. A extensão do Azure Machine Learning é uma extensão de cluster padrão para AKS e uma extensão de cluster para Kubernetes habilitado para Azure Arc. Você pode gerenciar seu ciclo de vida usando CLI do Azure k8s-extension.
Neste artigo, você aprenderá sobre:
- Pré-requisitos
- Limitações
- Revisar as configurações de extensão do Azure Machine Learning
- Cenários de implantação da extensão do Azure Machine Learning
- Verificar a implantação da extensão do Azure Machine Learning
- Revisar os componentes da extensão do Azure Machine Learning
- Gerenciar a extensão do Azure Machine Learning
Pré-requisitos
- Um cluster do AKS em execução no Azure. Se você não tiver usado extensões de cluster anteriormente, será necessário registrar o provedor de serviços KubernetesConfiguration.
- Ou um cluster do Kubernetes habilitado para Azure Arc que está em funcionamento. Siga as instruções em conectar o cluster do Kubernetes existente ao Azure Arc.
- Se o cluster for um cluster de serviço do Red Hat OpenShift no Azure (ARO) ou cluster OCP (OpenShift Container Platform), você deverá atender a outras etapas de pré-requisito, conforme documentado na Referência para configurar o artigo do cluster do Kubernetes.
- Para fins de produção, o cluster do Kubernetes deve ter um mínimo de 4 núcleos de vCPU e 14 GB de memória. Para obter mais informações sobre detalhes do recurso e recomendações de tamanho do cluster, consulte Planejamento de recursos recomendado.
- Um cluster em execução atrás de um servidor proxy de saída ou firewall precisa de configurações de rede extras.
- Instale ou atualize a CLI do Azure para a versão 2.51.0 ou superior.
- Instale ou atualize a extensão da CLI do Azure
k8s-extensionpara a versão 1.2.3 ou posterior.
Limitações
- O Azure Machine Learning não dá suporteao uso de uma entidade de serviço com o AKS. Em vez disso, o cluster do AKS deve usar uma identidade gerenciada. Há suporte para identidade gerenciada atribuída pelo sistema e identidade gerenciada atribuída pelo usuário. Para obter mais informações, confira Usar identidade gerenciada no Serviço de Kubernetes do Azure.
- Ao converter o cluster do AKS de uso de uma entidade de serviço para o uso da identidade gerenciada, você precisa excluir e recriar todos os pools de nós antes de instalar a extensão. Você não pode atualizar diretamente os pools de nós.
- Azure Machine Learning não oferece suporteà desabilitação de contas locais para AKS. Quando você implanta o cluster do AKS, as contas locais são habilitadas por padrão.
- Se o cluster do AKS tiver um intervalo de IP autorizado habilitado para acesso ao servidor de API, você deverá habilitar os intervalos de IP do plano de controle do Azure Machine Learning para o cluster do AKS. O painel de controle do Azure Machine Learning é implantado em regiões emparelhadas. Sem acesso ao servidor da API, os pods de aprendizado de máquina não podem ser implantado. Use os intervalos de IP para ambas regiões emparelhadas ao habilitar os intervalos de IP em um cluster do AKS.
- O Azure Machine Learning não oferece suporte à anexação de uma assinatura cruzada de cluster do AKS. Se você tiver um cluster do AKS em uma assinatura diferente, primeiro conecte-o ao Azure Arc e especifique-o na mesma assinatura que seu workspace do Azure Machine Learning.
- O Azure Machine Learning não garante suporte para todos os recursos de estágio de visualização no AKS. Por exemplo, a identidade gerenciada por pod do Microsoft Entra (preterida) não é compatível. Use ID de carga de trabalho do Microsoft Entra em vez disso.
- Se você seguiu as etapas no documento Azure Machine Learning AKS v1 para criar ou anexar seu AKS como um cluster de inferência, use o link a seguir para limpar os recursos herdados relacionados ao azureml-fe antes de prosseguir para a próxima etapa.
- No momento, não há suporte para a extensão Azure Machine Learning em arquiteturas ARM64. Use pools de nós com a arquitetura x86_64 (
amd64) para a extensão. Um pool de nós do AKS não pode misturar SKUs de VMamd64e ARM64, portanto, escolha SKUs de VM do pool de nós com a arquitetura compatível e não combine arquiteturas no mesmo pool de nós. Se o cluster tiver pools de nós mistos, usenodeSelectorpara direcionar a extensão e suas cargas de trabalho para os nós com arquitetura compatível.
Revisar as configurações de extensão do Azure Machine Learning
Use o comando CLI do Azure az k8s-extension create para implantar a extensão Azure Machine Learning. O comando az k8s-extension create aceita configurações como pares key=value separados por espaços por meio do parâmetro --config ou --config-protected. A tabela a seguir lista as configurações disponíveis que você pode especificar durante a implantação.
| Nome da chave de configuração | Descrição | Treinamento | Inferência | Treinamento e inferência |
|---|---|---|---|---|
enableTraining |
True ou False, padrão False.
Precisa ser definido como True para a implantação da extensão do Azure Machine Learning com suporte ao treinamento do modelo de machine learning e à pontuação em lote. |
✓ | N/D | ✓ |
enableInference |
True ou False, padrão False.
Precisa ser definido como True para a implantação da extensão do Azure Machine Learning com suporte à inferência de machine learning. |
N/D | ✓ | ✓ |
allowInsecureConnections |
True ou False, padrão False.
Pode ser definido como True para usar pontos de extremidade HTTP de inferência para fins de desenvolvimento ou teste. |
N/D | Opcional | Opcional |
inferenceRouterServiceType |
loadBalancer, nodePort ou clusterIP.
Obrigatório se enableInference=True. |
N/D | ✓ | ✓ |
internalLoadBalancerProvider |
Essa configuração agora é aplicável somente ao cluster do AKS (Serviço de Kubernetes do Azure). Definido como azure para permitir que o roteador de inferência use o balanceador de carga interno. |
N/D | Opcional | Opcional |
sslSecret |
O nome do segredo do Kubernetes no namespace azureml. Essa configuração é usada para armazenar cert.pem (certificado TLS/SSL codificado em PEM) e key.pem (chave TLS/SSL codificada em PEM), que são necessários para o suporte ao ponto de extremidade HTTPS de inferência quando allowInsecureConnections é definido como False. Para obter uma definição YAML de exemplo de sslSecret, consulte Configurar sslSecret. Use essa configuração ou combinação de definições de configuração protegidas sslCertPemFile e sslKeyPemFile. |
N/D | Opcional | Opcional |
sslCname |
Um CNAME TLS/SSL é usado pelo ponto de extremidade HTTPS de inferência.
Obrigatório se allowInsecureConnections=False |
N/D | Opcional | Opcional |
inferenceRouterHA |
True ou False, padrão True. Por padrão, a extensão do Azure Machine Learning implanta três réplicas de roteador de inferência para alta disponibilidade, o que requer pelo menos três nós de trabalho em um cluster. Definido como False, se o cluster tiver menos de três nós de trabalho, nesse caso, apenas um serviço de roteador de inferência será implantado. |
N/D | Opcional | Opcional |
nodeSelector |
Por padrão, os recursos do Kubernetes e as cargas de trabalho de machine learning são implantados aleatoriamente em um ou mais nós do cluster, e os recursos do DaemonSet são implantados em TODOS os nós. Se você quiser restringir a implantação de extensão e as cargas de trabalho de treinamento e inferência a nós específicos com o rótulo key1=value1 e key2=value2, use nodeSelector.key1=value1, nodeSelector.key2=value2 respectivamente. |
Opcional | Opcional | Opcional |
installNvidiaDevicePlugin |
True ou False, padrão False. O plug-in do dispositivo NVIDIA é necessário para cargas de trabalho de ML no hardware da GPU NVIDIA. Por padrão, a implantação da extensão do Azure Machine Learning não instalará o plug-in do dispositivo NVIDIA, independentemente de o cluster do Kubernetes ter ou não o hardware da GPU. O usuário pode especificar essa configuração para True, para instalá-la, mas você deve atender aos pré-requisitos. |
Opcional | Opcional | Opcional |
installPromOp |
True ou False, padrão True. A extensão do Azure Machine Learning precisa ter o operador do Prometheus para gerenciar o Prometheus. Defina como False para reutilizar o operador Prometheus existente. Para obter mais informações sobre como reusar o Operador Prometheus existente, consulte reusar o Operador Prometheus |
Opcional | Opcional | Opcional |
installVolcano |
True ou False, padrão True. A extensão do Azure Machine Learning precisa ter o agendador do Volcano para agendar o trabalho. Defina como False para reutilizar o agendador volcano existente. Para obter mais informações sobre como reusar o Agendador Volcano existente, consulte reusar o Agendador Volcano |
Opcional | N/D | Opcional |
installDcgmExporter |
True ou False, padrão False. O dcgm-exporter pode expor as métricas de GPU para as cargas de trabalho do Azure Machine Learning, que podem ser monitoradas no portal do Azure. Defina installDcgmExporter como True para instalar o exportador de dcgm. Mas se você quiser usar seu próprio exportador de dcgm, consulte Exportador de DCGM |
Opcional | Opcional | Opcional |
| Nome da chave de configuração protegida por configuração | Descrição | Treinamento | Inferência | Treinamento e inferência |
|---|---|---|---|---|
sslCertPemFile, sslKeyPemFile |
Caminho para o certificado TLS/SSL e o arquivo de chave (codificado por PEM), necessário para a implantação da extensão do Azure Machine Learning com suporte para ponto de extremidade HTTPS de inferência, quando allowInsecureConnections estiver definido como False.
Nota Não há suporte para o arquivo PEM com a frase secreta protegida |
N/D | Opcional | Opcional |
Como você pode ver na tabela de definições de configuração, as combinações de diferentes definições de configuração permitem que você implante a extensão do Azure Machine Learning nos diferentes cenários de carga de trabalho de ML:
- Para trabalho de treinamento e carga de trabalho de inferência em lote, especifique
enableTraining=True - Para carga de trabalho de inferência apenas, especifique
enableInference=True - Para todos os tipos de carga de trabalho de ML, especifique ambos:
enableTraining=TrueeenableInference=True
Se você pretende implantar a extensão do Azure Machine Learning para carga de trabalho de inferência em tempo real e deseja especificar enableInference=True, preste atenção às seguintes definições de configuração relacionadas à carga de trabalho de inferência em tempo real:
- O serviço de roteador
azureml-feé necessário para dar suporte à inferência em tempo real e você precisa especificar a configuraçãoinferenceRouterServiceTypeparaazureml-fe. O roteador é implantado como a implantação do Kubernetesazureml-fe-v2, que você vê listada nos componentes de extensão.azureml-fepode ser implantado com um dos seguintesinferenceRouterServiceType:- Digite
loadBalancer. Expõeazureml-feexternamente usando o balanceador de carga de um provedor de nuvem. Para especificar esse valor, verifique se o cluster dá suporte para provisionamento do balanceador de carga. Observe que a maioria dos clusters do Kubernetes locais pode não dar suporte ao balanceador de carga externo. - Digite
nodePort. Expõeazureml-feno IP de cada nó em uma porta estática. Você pode contatarazureml-fe, de fora do cluster, solicitando<NodeIP>:<NodePort>. UsarnodePorttambém permitirá que você configure a própria solução de balanceamento de carga e a terminação TLS/SSL paraazureml-fe. Para obter mais informações sobre como configurar seu próprio ingress, consulte Integrar outro controlador de ingress à extensão do Azure Machine Learning via HTTP ou HTTPS. - Digite
clusterIP. Expõeazureml-feem um IP interno do cluster e tornaazureml-feacessível apenas de dentro do cluster. Para queazureml-featenda a solicitações de inferência fora do cluster, é necessário configurar a própria solução de balanceamento de carga e a terminação TLS/SSL paraazureml-fe. Para obter mais informações sobre como configurar seu próprio ingress, consulte Integrar outro controlador de ingress à extensão do Azure Machine Learning via HTTP ou HTTPS.
- Digite
- Para garantir a alta disponibilidade do serviço de roteamento do
azureml-fe, a implantação da extensão do Azure Machine Learning por padrão cria três réplicas deazureml-fepara clusters com três nós ou mais. Se o cluster tiver menos de 3 nós, definainferenceRouterHA=False. - Considere usar HTTPS para restringir o acesso aos pontos de extremidade do modelo e proteger os dados enviados pelos clientes. Para essa finalidade, você precisa especificar a definição de configuração
sslSecretou a combinação de configurações protegidassslKeyPemFileesslCertPemFile. - Por padrão, a implantação da extensão do Azure Machine Learning espera definições de configuração para o suporte a HTTPS. Para fins de desenvolvimento ou de teste, o suporte HTTP é fornecido de forma conveniente por meio da definição de configuração
allowInsecureConnections=True.
Implantação da extensão do Azure Machine Learning – Exemplos da CLI e portal do Azure
Para implantar a extensão Azure Machine Learning usando a CLI, use o comando az k8s-extension create e forneça valores para os parâmetros obrigatórios.
A lista a seguir descreve quatro cenários típicos de implantação de extensão. Para implantar a extensão para o uso de produção, leia cuidadosamente a lista completa de configurações.
Usar o cluster do AKS no Azure para uma prova rápida de conceito para executar todos os tipos de carga de trabalho de ML, por exemplo, para executar trabalhos de treinamento ou implantar modelos como pontos de extremidade online/em lote
Para a implantação da extensão do Azure Machine Learning no cluster AKS, especifique o valor
managedClusterspara o parâmetro--cluster-type. Execute o seguinte comando da CLI do Azure para implantar a extensão do 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 clusterUse um cluster do Kubernetes habilitado pelo Azure Arc fora do Azure para realizar uma prova de conceito rápida, executando apenas tarefas de treinamento
Para a implantação da extensão do Azure Machine Learning em um cluster do Azure Arc-enabled Kubernetes, especifique o valor
connectedClusterspara o parâmetro--cluster-type. Execute o seguinte comando da CLI do Azure para implantar a extensão do 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 clusterHabilite um cluster do AKS no Azure para cargas de trabalho de treinamento e inferência de produção Para a implantação da extensão do Azure Machine Learning no AKS, especifique o valor
managedClusterspara o parâmetro--cluster-type. Supondo que seu cluster tenha mais de três nós e que você use um balanceador de carga público do Azure e HTTPS para suporte à carga de trabalho de inferência. Execute o seguinte comando da CLI do Azure para implantar a extensão do 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 clusterHabilitar um cluster Azure Arc habilitado para Kubernetes em qualquer lugar para treinamento de produção e carga de trabalho de inferência usando GPUs NVIDIA
Para a implantação da extensão do Azure Machine Learning em um cluster do Azure Arc-enabled Kubernetes, especifique o valor
connectedClusterspara o parâmetro--cluster-type. Supondo que seu cluster tenha mais de três nós, que você use um tipo de serviço NodePort e HTTPS para suporte à carga de trabalho de inferência, execute o seguinte comando da CLI do Azure para implantar a extensão do 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
Verificar a implantação da extensão do Azure Machine Learning
Execute o comando da CLI aplicável para verificar os detalhes da extensão do Azure Machine Learning:
AKS
az k8s-extension show --name <extension-name> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <resource-group>Kubernetes habilitado para Azure Arc
az k8s-extension show --name <extension-name> --cluster-type connectedClusters --cluster-name <your-connected-cluster-name> --resource-group <resource-group>Na resposta, procure
"name"e"provisioningState": "Succeeded". Pode aparecer"provisioningState": "Pending"nos primeiros minutos.Se o provisioningState mostrar Succeeded, execute o seguinte comando em seu computador com o arquivo kubeconfig apontado para o seu cluster para verificar se todos os pods no namespace
azuremlestão no estadoRunning:kubectl get pods -n azureml
Revisar o componente da extensão do Azure Machine Learning
Quando a implantação da extensão do Azure Machine Learning for concluída, use kubectl get deployments -n azureml para consultar a lista de recursos criados no cluster. A lista geralmente consiste em um subconjunto dos recursos a seguir, dependendo das configurações especificadas.
| Nome do recurso | Tipo de recurso | Treinamento | Inferência | Treinamento e inferência | Descrição | Comunicação com a nuvem |
|---|---|---|---|---|---|---|
| servidor de retransmissão | Implantação do Kubernetes | ✓ | ✓ | ✓ | A implantação só cria o servidor de retransmissão para clusters do Kubernetes habilitados para o Azure Arc, e não em clusters do AKS. O servidor de retransmissão funciona com a Retransmissão do Azure para se comunicar com os serviços de nuvem. | Receba a solicitação de criação de trabalho, implantação de modelo do serviço de nuvem; sincronize o status do trabalho com o serviço de nuvem. |
| gateway | Implantação do Kubernetes | ✓ | ✓ | ✓ | O gateway é usado para se comunicar e enviar dados bidirecionalmente. | Envie nós e informações de recursos de cluster para serviços de nuvem. |
| aml-operator | Implantação do Kubernetes | ✓ | N/D | ✓ | Gerencie o ciclo de vida dos trabalhos de treinamento. | Troca de tokens com o serviço de token de nuvem para autenticação e autorização do Registro de Contêiner do Azure. |
| metrics-controller-manager | Implantação do Kubernetes | ✓ | ✓ | ✓ | Gerencie a configuração do Prometheus | N/D |
| {EXTENSION-NAME}-kube-state-metrics | Implantação do Kubernetes | ✓ | ✓ | ✓ | Exporte as métricas relacionadas ao cluster para o Prometheus. | N/D |
| {EXTENSION-NAME}-prometheus-operator | Implantação do Kubernetes | Opcional | Opcional | Opcional | Forneça implantação e gerenciamento nativos do Kubernetes de Prometheus e componentes de monitoramento relacionados. | N/D |
| amlarc-identity-controller | Implantação do Kubernetes | N/D | ✓ | ✓ | Solicite e renova o token do Registro de Contêiner do Azure/Blobs do Azure por meio de identidade gerenciada. | Troca de tokens com o serviço de token de nuvem para autenticação e autorização do Registro de Contêiner do Azure e do Blob do Azure usado pela implantação de modelo/inferência. |
| amlarc-identity-proxy | Implantação do Kubernetes | N/D | ✓ | ✓ | Solicite e renova o token do Registro de Contêiner do Azure/Blobs do Azure por meio de identidade gerenciada. | Troca de tokens com o serviço de token de nuvem para autenticação e autorização do Registro de Contêiner do Azure e do Blob do Azure usado pela implantação de modelo/inferência. |
| azureml-fe-v2 | Implantação do Kubernetes | N/D | ✓ | ✓ | O componente de front-end que roteia as solicitações de inferência de entrada para serviços implantados. | Envie logs do serviço para o Blob do Azure. |
| inference-operator-controller-manager | Implantação do Kubernetes | N/D | ✓ | ✓ | Gerencie o ciclo de vida dos pontos de extremidade de inferência. | N/D |
| volcano-admission | Implantação do Kubernetes | Opcional | N/D | Opcional | Webhook de admissão volcano. | N/D |
| controladores de vulcões | Implantação do Kubernetes | Opcional | N/D | Opcional | Gerencie o ciclo de vida dos pods de trabalho de treinamento do Azure Machine Learning. | N/D |
| volcano-scheduler | Implantação do Kubernetes | Opcional | N/D | Opcional | Usado para realizar o agendamento de trabalhos no cluster. | N/D |
| fluent-bit | DaemonSet do Kubernetes | ✓ | ✓ | ✓ | Reúna o log do sistema dos componentes. | Carregue o log do sistema dos componentes para a nuvem. |
| {NOME-DA-EXTENSÃO}-dcgm-exporter | DaemonSet do Kubernetes | Opcional | Opcional | Opcional | O dcgm-exporter expõe as métricas de GPU para o Prometheus. | N/D |
| nvidia-device-plugin-daemonset | DaemonSet do Kubernetes | Opcional | Opcional | Opcional | O nvidia-device-plugin-daemonset expõe as GPUs de cada nó do cluster | N/D |
| prometheus-prom-prometheus | Kubernetes com estado | ✓ | ✓ | ✓ | Reúna e envie métricas de trabalho para a nuvem. | Envie métricas de trabalho como utilização de CPU/gpu/memória para a nuvem. |
Importante
- O recurso Retransmissão do Azure está no mesmo grupo de recursos que o recurso de cluster arc. Ele é usado para se comunicar com o cluster do Kubernetes. A modificação interrompe destinos de computação anexados.
- Por padrão, os recursos de implantação são implantados aleatoriamente em um ou mais nós do cluster e os recursos do daemonset são implantados em todos os nós. Para restringir a implantação da extensão a nós específicos, use a configuração
nodeSelectordescrita na tabela de configurações.
Observação
-
{EXTENSION-NAME}: é o nome da extensão que você especifica usando o comando da
az k8s-extension create --nameCLI.
Gerenciar a extensão do Azure Machine Learning
Atualize, liste, mostre e exclua uma extensão de Azure Machine Learning.
- Para clusters AKS sem Azure Arc conectados, consulte Deploy e gerencie extensões de cluster.
- Para o Kubernetes habilitado pelo Azure Arc, consulte Implantar e gerenciar extensões de cluster do Kubernetes habilitado pelo Azure Arc.