Collegare un cluster Kubernetes all'area di lavoro di Azure Machine Learning

SI APPLICA A:Estensione per Machine Learning dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

Dopo aver distribuito l'estensione Azure Machine Learning nel cluster del servizio Azure Kubernetes o Arc Kubernetes, è possibile collegare il cluster Kubernetes all'area di lavoro di Azure Machine Learning e creare destinazioni di calcolo che possono essere usate dai professionisti di apprendimento automatico.

Prerequisiti

Il collegamento di un cluster Kubernetes all'area di lavoro di Azure Machine Learning può supportare in modo flessibile molti scenari diversi. Ad esempio, gli scenari condivisi con più allegati, gli script di training del modello che accedono alle risorse di Azure e la configurazione dell'autenticazione dell'area di lavoro.

Collegamenti multipli e isolamento dei carichi di lavoro

Da un cluster a un'area di lavoro, creando più destinazioni di calcolo

  • È possibile collegare lo stesso cluster Kubernetes più volte alla stessa area di lavoro e creare più destinazioni di calcolo per progetti/team/carichi di lavoro diversi.

Da un cluster a più aree di lavoro

  • È anche possibile collegare lo stesso cluster Kubernetes a più aree di lavoro, in modo che più aree di lavoro possano condividere lo stesso cluster Kubernetes.

Se si prevede di avere destinazioni di calcolo diverse per progetti/team diversi, è possibile specificare lo spazio dei nomi Kubernetes esistente nel cluster per la destinazione di calcolo per isolare il carico di lavoro tra team/progetti diversi.

Importante

Lo spazio dei nomi da specificare quando si collega il cluster all'area di lavoro di Azure Machine Learning deve essere creato in precedenza nel cluster.

Accedere in modo sicuro alle risorse di Azure dallo script di training

Se è necessario accedere in modo sicuro alle risorse di Azure dallo script di training, è possibile specificare un'identità gestita per la destinazione di calcolo Kubernetes durante l'operazione di collegamento.

Collegamento all'area di lavoro con l'identità gestita assegnata dall'utente

Per impostazione predefinita, l'area di lavoro di Azure Machine Learning ha un'identità gestita assegnata dal sistema per accedere alle risorse di Azure Machine Learning. I passaggi vengono completati se l'impostazione predefinita assegnata dal sistema è attivata.

In caso contrario, se viene specificata un'identità gestita assegnata dall'utente nella creazione dell'area di lavoro di Azure Machine Learning, è necessario concedere manualmente le assegnazioni di ruolo seguenti all'identità gestita prima di collegare l'ambiente di calcolo.

Nome risorsa di Azure Ruoli da assegnare Descrizione
Inoltro di Azure Proprietario di Inoltro di Azure Applicabile solo per il cluster Kubernetes abilitato per Arc. Inoltro di Azure non viene creato per il cluster del servizio Azure Kubernetes senza connessione Arc.
Kubernetes - Azure Arc o servizio Azure Kubernetes Reader
Collaboratore estensione Kubernetes
Amministratore del cluster del servizio Azure Kubernetes
Applicabile sia per il cluster Kubernetes abilitato per Arc sia per il cluster del servizio Azure Kubernetes.

Suggerimento

La risorsa di Inoltro di Azure viene creata durante la distribuzione dell'estensione nello stesso gruppo di risorse del cluster Kubernetes abilitato per Arc.

Nota

  • Se l'autorizzazione del ruolo "Collaboratore estensione Kubernetes" non è disponibile, il collegamento del cluster ha esito negativo e viene visualizzato l'errore "estensione non installata".
  • Se l'autorizzazione del ruolo "Amministratore del cluster del servizio Azure Kubernetes" non è disponibile, il collegamento del cluster ha esito negativo e viene visualizzato l'errore "interno del server".

Come collegare un cluster Kubernetes all'area di lavoro di Azure Machine Learning

Sono supportati due modi per collegare un cluster Kubernetes all'area di lavoro di Azure Machine Learning, ovvero tramite l'interfaccia della riga di comando di Azure o l'interfaccia utente dello studio.

I comandi dell'interfaccia della riga di comando v2 seguenti illustrano come collegare un cluster del servizio Azure Kubernetes e un cluster Kubernetes abilitato per Azure Arc e usarlo come destinazione di calcolo con identità gestita abilitata.

Cluster del servizio Azure Kubernetes

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 Kubernetes abilitato per 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

Impostare l'argomento --type su Kubernetes. Usare l'argomento identity_type per abilitare le identità gestite SystemAssigned o UserAssigned.

Importante

--user-assigned-identities è necessario solo per le identità gestite UserAssigned. Sebbene sia possibile fornire un elenco di identità gestite dall'utente separate da virgole, solo la prima viene usata quando si collega il cluster.

Il collegamento dell'ambiente di calcolo non creerà automaticamente lo spazio dei nomi Kubernetes e non verificherà se lo spazio dei nomi Kubernetes esiste. È necessario verificare che lo spazio dei nomi specificato esista nel cluster. In caso contrario, eventuali carichi di lavoro di Azure Machine Learning inviati a questo ambiente di calcolo avranno esito negativo.

Assegnare un'identità gestita alla destinazione di calcolo

Uno dei problemi a cui devono far fronte gli sviluppatori riguarda la gestione dei segreti e delle credenziali usate per proteggere la comunicazione tra diversi componenti di una soluzione. Le identità gestite eliminano la necessità per gli sviluppatori di gestire credenziali.

Per accedere al Registro Azure Container per un'immagine Docker e a un account di archiviazione per i dati di training, collegare l'ambiente di calcolo Kubernetes a un'identità gestita assegnata dal sistema o assegnata dall'utente abilitata.

Assegnare un'identità gestita

  • È possibile assegnare un'identità gestita all'ambiente di calcolo nel passaggio di collegamento dell'ambiente di calcolo.

  • Se l'ambiente di calcolo è già stato collegato, è possibile aggiornare le impostazioni per usare un'identità gestita nello studio di Azure Machine Learning.

    • Passare a Studio di Azure Machine Learning. Selezionare Calcolo, Ambiente di calcolo collegato e selezionare l'ambiente di calcolo collegato.
    • Selezionare l'icona a forma di matita per modificare l'identità gestita.

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

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

Assegnare ruoli di Azure all'identità gestita

Azure offre alcuni modi per assegnare ruoli a un'identità gestita.

Se si usa il portale di Azure per assegnare ruoli e si ha un'identità gestita assegnata dal sistema, un utente selezionato, un'entità gruppo o un'entità servizio, è possibile cercare il nome dell'identità selezionando Selezione membri. Il nome dell'identità deve essere formattato come: <workspace name>/computes/<compute target name>.

Se si ha un'identità gestita assegnata dall'utente, selezionare Identità gestita per trovare l'identità di destinazione.

È possibile usare l'identità gestita per eseguire il pull delle immagini dal Registro Azure Container. Concedere il ruolo AcrPull all'identità gestita dell'ambiente di calcolo. Per altre informazioni, vedere Ruoli e autorizzazioni di Registro Azure Container.

È possibile usare un'identità gestita per accedere al BLOB di Azure:

  • A scopo di sola lettura, il ruolo Lettore dei dati dei BLOB di archiviazione deve essere concesso all'identità gestita dell'ambiente di calcolo.
  • A scopo di sola scrittura, il ruolo Collaboratore ai dati dei BLOB di archiviazione deve essere concesso all'identità gestita dell'ambiente di calcolo.

Passaggi successivi