Attacher un cluster Kubernetes à un espace de travail Azure Machine Learning
S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)
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. |
Azure Kubernetes Service | Contributeur | Uniquement requis pour les clusters AKS qui utilisent la fonctionnalité d’Accès approuvé. L’espace de travail utilise l’identité managée affectée par l’utilisateur. Voir Accès AzureML au cluster AKS avec des configurations spéciales pour plus de détails. |
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.
Attribuer des rôles Azure à une identité managée
Azure offre plusieurs façons d’attribuer des rôles à une identité managée.
- Utiliser le portail Azure pour attribuer des rôles
- Utiliser Azure CLI pour attribuer des rôles
- Utiliser Azure PowerShell pour attribuer des rôles
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.