Anexar um cluster do Kubernetes à área de trabalho do Azure Machine Learning
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Depois que a extensão do Azure Machine Learning for implantada no cluster AKS ou Arc Kubernetes, você poderá anexar o cluster Kubernetes ao espaço de trabalho do Azure Machine Learning e criar destinos de computação para os profissionais de ML usarem.
Pré-requisitos
Anexar um cluster Kubernetes ao espaço de trabalho do Azure Machine Learning pode oferecer suporte flexível a muitos cenários diferentes. Por exemplo, os cenários compartilhados com vários anexos, scripts de treinamento de modelo acessando recursos do Azure e a configuração de autenticação do espaço de trabalho.
Isolamento de multiconexão e carga de trabalho
Um cluster para um espaço de trabalho, criando vários destinos de computação
- Para o mesmo cluster Kubernetes, você pode anexá-lo ao mesmo espaço de trabalho várias vezes e criar vários destinos de computação para diferentes projetos/equipes/cargas de trabalho.
Um cluster para vários espaços de trabalho
- Para o mesmo cluster do Kubernetes, você também pode anexá-lo a vários espaços de trabalho, e os vários espaços de trabalho podem compartilhar o mesmo cluster do Kubernetes.
Se você planeja ter destinos de computação diferentes para projetos/equipes diferentes, pode especificar o namespace Kubernetes existente em seu cluster para que o destino de computação isole a carga de trabalho entre diferentes equipes/projetos.
Importante
O namespace que você planeja especificar ao anexar o cluster ao espaço de trabalho do Azure Machine Learning deve ser criado anteriormente em seu cluster.
Acesse com segurança o recurso do Azure a partir do script de treinamento
Se você precisar acessar o recurso do Azure com segurança a partir do seu script de treinamento, poderá especificar uma identidade gerenciada para o destino de computação do Kubernetes durante a operação de anexação.
Anexar ao espaço de trabalho com identidade gerenciada atribuída pelo usuário
O espaço de trabalho do Azure Machine Learning tem como padrão ter uma identidade gerenciada atribuída ao sistema para acessar os recursos do Azure Machine Learning. As etapas serão concluídas se a configuração padrão atribuída ao sistema estiver ativada.
Caso contrário, se uma identidade gerenciada atribuída pelo usuário for especificada na criação do espaço de trabalho do Azure Machine Learning, as seguintes atribuições de função precisarão ser concedidas manualmente à identidade gerenciada antes de anexar a computação.
Nome do recurso do Azure | Funções a atribuir | Description |
---|---|---|
Reencaminhamento do Azure | Proprietário do Azure Relay | Aplicável apenas para cluster Kubernetes habilitado para Arc. O Azure Relay não é criado para cluster AKS sem Arc conectado. |
Kubernetes - Azure Arc ou Serviço Kubernetes do Azure | Leitor Colaborador de extensão do Kubernetes Administrador do Cluster de Serviço do Kubernetes do Azure |
Aplicável para cluster Kubernetes habilitado para Arc e cluster AKS. |
Azure Kubernetes Service | Contribuinte | Necessário apenas para clusters AKS que usam o recurso Acesso Confiável. O espaço de trabalho usa a identidade gerenciada atribuída pelo usuário. Consulte Acesso do AzureML a clusters AKS com configurações especiais para obter detalhes. |
Gorjeta
O recurso de Retransmissão do Azure é criado durante a implantação da extensão no mesmo Grupo de Recursos que o cluster Kubernetes habilitado para Arc.
Nota
- Se a permissão de função "Kubernetes Extension Contributor" não estiver disponível, o anexo do cluster falhará com o erro "extensão não instalada".
- Se a permissão de função "Azure Kubernetes Service Cluster Admin" não estiver disponível, o anexo do cluster falhará com o erro "servidor interno".
Como anexar um cluster Kubernetes ao espaço de trabalho do Azure Machine Learning
Oferecemos suporte a duas maneiras de anexar um cluster do Kubernetes ao espaço de trabalho do Azure Machine Learning, usando a CLI do Azure ou a interface do usuário do estúdio.
Os comandos da CLI v2 a seguir mostram como anexar um cluster Kubernetes habilitado para AKS e Azure Arc e usá-lo como um destino de computação com a identidade gerenciada habilitada.
Cluster do AKS
az ml compute attach --resource-group <resource-group-name> --workspace-name <workspace-name> --type Kubernetes --name k8s-compute --resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerService/managedclusters/<cluster-name>" --identity-type SystemAssigned --namespace <Kubernetes namespace to run Azure Machine Learning workloads> --no-wait
Cluster Arc Kubernetes
az ml compute attach --resource-group <resource-group-name> --workspace-name <workspace-name> --type Kubernetes --name amlarc-compute --resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Kubernetes/connectedClusters/<cluster-name>" --user-assigned-identities "subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>" --no-wait
Defina o --type
argumento como Kubernetes
. Use o identity_type
argumento para habilitar SystemAssigned
ou UserAssigned
gerenciar identidades.
Importante
--user-assigned-identities
só é necessário para UserAssigned
identidades gerenciadas. Embora você possa fornecer uma lista de identidades gerenciadas por usuário separadas por vírgula, somente a primeira é usada quando você anexa seu cluster.
A anexação de computação não criará o namespace do Kubernetes automaticamente nem validará se o namespace do kubernetes existiu. Você precisa verificar se o namespace especificado existe em seu cluster, caso contrário, todas as cargas de trabalho do Azure Machine Learning enviadas para essa computação falharão.
Atribuir identidade gerenciada ao destino de computação
Um desafio comum para os desenvolvedores é o gerenciamento de segredos e credenciais usadas para proteger a comunicação entre os diferentes componentes de uma solução. As identidades geridas eliminam a necessidade de os programadores gerirem as credenciais.
Para acessar o Azure Container Registry (ACR) para uma imagem do Docker e uma Conta de Armazenamento para dados de treinamento, anexe a computação do Kubernetes com uma identidade gerenciada atribuída pelo sistema ou pelo usuário habilitada.
Atribuir identidade gerenciada
Você pode atribuir uma identidade gerenciada à computação na etapa de anexação de computação.
Se a computação já tiver sido anexada, você poderá atualizar as configurações para usar uma identidade gerenciada no estúdio do Azure Machine Learning.
- Vá para o estúdio do Azure Machine Learning. Selecione Computação, Computação anexada e selecione a computação anexada.
- Selecione o ícone de lápis para editar a identidade gerenciada.
Atribuir funções do Azure à identidade gerenciada
O Azure oferece algumas maneiras de atribuir funções a uma identidade gerenciada.
- Usar o portal do Azure para atribuir funções
- Usar a CLI do Azure para atribuir funções
- Usar o Azure PowerShell para atribuir funções
Se estiver a utilizar o portal do Azure para atribuir funções e tiver uma identidade gerida atribuída pelo sistema, Selecionar Utilizador, Principal de Grupo ou Principal de Serviço, pode procurar o nome da identidade selecionando Selecionar membros. O nome da identidade precisa ser formatado como: <workspace name>/computes/<compute target name>
.
Se você tiver uma identidade gerenciada atribuída pelo usuário, selecione Identidade gerenciada para localizar a identidade de destino.
Você pode usar a Identidade Gerenciada para extrair imagens do Registro de Contêiner do Azure. Conceda a função AcrPull à Identidade Gerenciada de computação. Para obter mais informações, consulte Funções e permissões do Registro de Contêiner do Azure.
Você pode usar uma identidade gerenciada para acessar o Blob do Azure:
- Para fins somente leitura, a função Leitor de Dados de Blob de Armazenamento deve ser concedida à identidade gerenciada por computação.
- Para fins de leitura-gravação, a função de Colaborador de Dados de Blob de Armazenamento deve ser concedida à identidade gerenciada por computação.