Anexar um cluster de Kubernetes a um workspace do Azure Machine Learning

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Depois que a extensão do Azure Machine Learning for implantada no cluster do AKS ou do Kubernetes do Arc, você poderá anexar o cluster do Kubernetes ao workspace do Machine Learning do Azure e criar destinos de computação para uso por profussionais de ML.

Pré-requisitos

Anexar um cluster do Kubernetes ao workspace do Azure Machine Learning pode dar suporte de forma flexível a muitos cenários diferentes. Por exemplo, os cenários compartilhados com vários anexos, scripts de treinamento de modelo que acessam recursos do Azure e a configuração de autenticação do workspace.

Isolamento de várias anexações e cargas de trabalho

Um cluster para um workspace, criando vários destinos de computação

  • Para o mesmo cluster do Kubernetes, você pode anexá-lo ao mesmo workspace várias vezes e criar vários destinos de computação para diferentes projetos/equipes/cargas de trabalho.

Um cluster para vários workspaces

  • Para o mesmo cluster do Kubernetes, você também pode anexá-lo a vários workspaces e os diversos workspaces podem compartilhar o mesmo cluster do Kubernetes.

Se planeja ter destinos de computação diferentes para diferentes projetos/equipes, você poderá especificar o namespace do Kubernetes existente em seu cluster para o destino de computação a fim de isolar a carga de trabalho entre equipes/projetos diferentes.

Importante

O namespace que você planeja especificar ao anexar o cluster ao workspace do Azure Machine Learning deve ser criado anteriormente no cluster.

Acessar com segurança o recurso do Azure do script de treinamento

Se precisar acessar o recurso do Azure com segurança do script de treinamento, você poderá especificar uma identidade gerenciada para o destino de computação do Kubernetes durante a operação de anexação.

Anexar ao workspace com identidade gerenciada atribuída pelo usuário

O workspace do Azure Machine Learning tem como padrão ter uma identidade gerenciada atribuída pelo sistema para acessar os recursos do Azure Machine Learning. As etapas serão concluídas se a configuração padrão atribuída pelo sistema estiver ativada.

Caso contrário, se uma identidade gerenciada atribuída pelo usuário for especificada na criação do workspace do Azure Machine Learning, as atribuições de função a seguir precisarão ser concedidas à identidade gerenciada manualmente antes de anexar a computação.

Nome do recurso do Azure Funções a serem atribuídas Descrição
Retransmissão do Azure Proprietário de Retransmissão do Azure Aplicável apenas para clusters do Kubernetes habilitados para Arc. A Retransmissão do Azure não foi criada para o cluster do AKS sem o Arc conectado.
Kubernetes – Azure Arc ou Serviço de Kubernetes do Azure Leitor
Colaborador da Extensão Kubernetes
Administrador do Cluster do Serviço de Kubernetes do Azure
Aplicável ao cluster do Kubernetes habilitado para Arc e ao cluster do AKS.

Dica

O recurso de Retransmissão do Azure foi criado durante a implantação da extensão no mesmo Grupo de Recursos do cluster do Kubernetes habilitado para Arc.

Observação

  • Se a permissão de função "Colaborador da Extensão do Kubernetes" 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 "Serviço de Kubernetes do Azure Cluster Administração" não estiver disponível, o anexo do cluster falhará com o erro "servidor interno".

Como anexar um cluster de Kubernetes a um workspace do Azure Machine Learning

Damos suporte a duas maneiras de anexar um cluster do Kubernetes ao workspace do Azure Machine Learning, usando a CLI do Azure ou a interface do usuário do estúdio.

Os comandos CLI v2 a seguir mostram como anexar um cluster do Kubernetes habilitado para Azure Arc e para AKS e usá-lo como um destino de computação com uma 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 do Kubernetes do Arc

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 argumento --type como Kubernetes. Use o argumento identity_type para habilitar as identidades gerenciadas SystemAssigned ou UserAssigned.

Importante

--user-assigned-identities só é necessário para identidades gerenciadas UserAssigned. Embora seja possível fornecer uma lista de identidades gerenciadas pelo usuário separadas por vírgulas, somente a primeira é usada quando você anexa o cluster.

A anexação de computação não criará o namespace do Kubernetes automaticamente ou validará se o namespace do kubernetes existia. Você precisa verificar se o namespace especificado existe em seu cluster, caso contrário, todas as cargas de trabalho Azure Machine Learning enviadas para essa computação falharão.

Atribuir identidade gerenciada ao destino de computação

Um desafio comum para desenvolvedores é o gerenciamento de segredos e credenciais usadas para proteger a comunicação entre os diferentes componentes de uma solução. As identidades gerenciadas eliminam a necessidade de os desenvolvedores gerenciarem credenciais.

Para acessar o ACR (Registro de Contêiner do Azure) 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 atribuída 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.

    • Acesse o Estúdio do Azure Machine Learning. Selecione Computação, Computação anexada e selecione sua 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 a uma identidade gerenciada

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

Se você estiver usando o portal do Azure para atribuir funções e tiver uma identidade gerenciada atribuída pelo sistema, Selecionar Usuário, Entidade de Segurança de Grupo ou Entidade de Serviço, você poderá pesquisar 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 efetuar pull da imagem do Registro de Contêiner do Azure. Conceda a função AcrPull à identidade gerenciada de computação. Para obter mais informações, confira 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 do Blob de Armazenamento deve ser concedida à identidade gerenciada de computação.
  • Para fins leitura-gravação, a função Colaborador de Dados do Blob de Armazenamento deve ser concedida à identidade gerenciada de computação.

Próximas etapas