Attacher un cluster Kubernetes à un espace de travail Azure Machine Learning

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

Une fois l’extension Azure Machine Learning déployée sur un cluster AKS ou Arc Kubernetes, vous pouvez attacher le cluster Kubernetes à l’espace de travail Azure Machine Learning et créer des cibles de calcul pour les professionnels ML.

Prérequis

L’attachement d’un cluster Kubernetes à un espace de travail Azure Machine Learning peut prendre en charge de manière flexible de nombreux scénarios différents. Par exemple, les scénarios partagés avec plusieurs pièces jointes, des scripts d’entraînement de modèle qui accèdent aux ressources Azure et la configuration d’authentification de l’espace de travail.

Attachement multiple et isolation de la charge de travail

Un cluster à un espace de travail, créant plusieurs cibles de calcul

  • Le même cluster Kubernetes peut être attaché au même espace de travail plusieurs fois et vous pouvez créer plusieurs cibles de calcul pour différents projets/équipes/charges de travail.

Un cluster à plusieurs espaces de travail

  • Le même cluster Kubernetes peut aussi être attaché à plusieurs espaces de travail et plusieurs espaces de travail peuvent partager le même cluster Kubernetes.

Si vous envisagez d’avoir des cibles de calcul différentes pour différents projets ou équipes, vous pouvez spécifier l’espace de noms Kubernetes existant dans votre cluster pour la cible de calcul, afin d’isoler la charge de travail entre différentes équipes/projets.

Important

L’espace de noms que vous prévoyez de spécifier lors de l’attachement du cluster à l’espace de travail Azure Machine Learning doit être créé auparavant dans votre cluster.

Accéder de façon sécurisée à la ressource Azure à partir d’un script d’entraînement

Si vous avez besoin d’accéder de manière sécurisée à des ressources Azure à partir de votre script d’entraînement, vous pouvez spécifier une identité managée pour la cible de calcul Kubernetes pendant l’opération d’attachement.

Attacher à un espace de travail avec une identité managée affectée par l’utilisateur

Par défaut, un espace de travail Azure Machine Learning a une identité managée affectée par le système pour accéder aux ressources Azure Machine Learning. Les étapes sont effectuées si le paramètre par défaut affecté par le système est activé.

Dans le cas contraire, si une identité managée affectée par l’utilisateur est spécifiée dans la création de l’espace de travail Azure Machine Learning, les attributions de rôles suivantes doivent être accordées manuellement à l’identité managée avant d’attacher le calcul.

Nom de la ressource Azure Rôles à attribuer Description
Azure Relay Propriétaire Azure Relay Applicable uniquement au cluster Kubernetes avec Arc. Azure Relay n’est pas créé pour le cluster AKS sans Arc.
Kubernetes - Azure Arc ou Azure Kubernetes Service Lecteur
Contributeur d’extension Kubernetes
Administrateur de cluster Azure Kubernetes Service
Applicable au cluster Kubernetes avec Arc et au cluster AKS.

Conseil

La ressource Azure Relay est créée pendant le déploiement de l’extension sous le même groupe de ressources que le cluster Kubernetes avec Arc.

Notes

  • Si l’autorisation du rôle « Contributeur d’extension Kubernetes » n’est pas disponible, l’attachement du cluster échoue avec l’erreur « Extension non installée ».
  • Si l’autorisation du rôle « Administrateur de cluster Azure Kubernetes Service » n’est pas disponible, l’attachement du cluster échoue avec l’erreur « Serveur interne ».

Comment attacher un cluster Kubernetes à un espace de travail Azure Machine Learning

Nous prenons en charge deux façons d’attacher un cluster Kubernetes à un espace de travail Azure Machine Learning : en utilisant Azure CLI ou l’interface utilisateur Studio.

La commande CLI v2 suivante montre comment attacher un cluster Kubernetes avec AKS et Azure Arc et l’utiliser comme cible de calcul avec l’identité managée activée.

Cluster 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

Définissez l’argument --type sur Kubernetes. Utilisez l’argument identity_type pour activer SystemAssigned ou UserAssigned gérer les identités.

Important

--user-assigned-identities est requis uniquement pour les UserAssigned identités gérées. Bien que vous puissiez fournir une liste d’identités gérées par des utilisateurs séparés par des virgules, seule la première est utilisée lorsque vous attachez votre cluster.

L’attachement de calcul ne crée pas automatiquement l’espace de noms Kubernetes ni ne vérifie si l’espace de noms Kubernetes existait. Vous devez vérifier que l’espace de noms spécifié existe dans votre cluster sinon toutes les charges de travail Azure Machine Learning soumises à ce calcul échoueront.

Affecter une identité managée à la cible de calcul

La gestion des secrets et des informations d’identification utilisés dans le cadre de la sécurisation des communications entre les différents composants d’une solution est une difficulté fréquemment rencontrée par les développeurs. Les identités managées permettent aux développeurs de ne plus avoir à gérer les informations d’identification.

Si vous souhaitez accéder à ACR (Azure Container Registry) pour une image Docker, et à un compte de stockage pour les données d’entraînement, attachez le calcul Kubernetes à une identité managée affectée par le système ou à une identité managée affectée par l’utilisateur.

Affecter une identité managée

  • Vous pouvez affecter une identité managée au calcul à l’étape d’attachement du calcul.

  • Si le calcul a déjà été attaché, vous pouvez mettre à jour les paramètres pour utiliser une identité managée dans Azure Machine Learning Studio.

    • Accédez à Azure Machine Learning Studio. Sélectionnez Calcul, Calcul attaché, puis sélectionnez votre calcul attaché.
    • Sélectionnez l’icône en forme de crayon pour modifier l’identité managée.

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

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

Attribuer des rôles Azure à une identité managée

Azure offre plusieurs façons d’attribuer des rôles à une identité managée.

Si vous utilisez le portail Azure pour attribuer des rôles et si vous disposez d’une identité managée affectée par le système, Sélectionner l’utilisateur, Principal de groupe ou Principal de service, vous pouvez rechercher le nom de l’identité en sélectionnant Sélectionner des membres. Le nom de l’identité doit être au format suivant : <workspace name>/computes/<compute target name>.

Si vous disposez d’une identité managée affectée par l’utilisateur, sélectionnez Identité managée pour trouver l’identité cible.

Vous pouvez utiliser l’identité managée pour extraire des images d’Azure Container Registry. Octroyez le rôle AcrPull à l’identité managée de calcul. Pour plus d’informations, consultez Rôles et autorisations Azure Container Registry.

Vous pouvez utiliser une identité managée pour accéder aux objets blob Azure :

  • À des fins de lecture seule, le rôle Lecteur des données Blob du stockage doit être octroyé à l’identité managée de calcul.
  • À des fins de lecture/écriture, le rôle Contributeur aux données Blob du stockage doit être octroyé à l’identité managée de calcul.

Étapes suivantes