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.

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.

    Screenshot of updating identity of the Kubernetes compute from Azure portal.

    Screenshot of selecting identity of the Kubernetes compute from Azure portal.

Atribuir funções do Azure à identidade gerenciada

O Azure oferece algumas maneiras de atribuir funções a uma identidade gerenciada.

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.

Próximos passos