Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À :
Azure Stack Edge Pro - GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
Cet article explique comment activer Azure Arc sur un cluster Kubernetes existant sur votre appareil Azure Stack Edge Pro.
Remarque
Suivez les instructions de démarrage rapide : Connecter un cluster Kubernetes existant à Azure Arc.
Cette procédure suppose que vous avez lu et compris les articles suivants :
- Charges de travail Kubernetes sur un appareil Azure Stack Edge Pro.
- Qu’est-ce que Kubernetes avec Azure Arc (préversion) ?
Prérequis
Vérifiez que vous avez rempli les conditions préalables suivantes sur votre appareil Azure Stack Edge Pro et le client que vous utilisez pour accéder à l’appareil :
Pour l’appareil
Vous avez les informations d’identification de connexion à un appareil Azure Stack Edge Pro à 1 nœud.
- L’appareil est activé. Voir Activer l’appareil.
- Le rôle de calcul est configuré sur l’appareil via le portail Azure et l’appareil dispose d’un cluster Kubernetes. Voir Configurer le calcul.
Vous disposez d’un accès propriétaire à l’abonnement. Vous aurez besoin de cet accès au cours de l’étape d’attribution de rôle pour votre principal de service.
Pour un client accédant à l’appareil
Vous disposez d’un système client Windows utilisé pour accéder à l’appareil Azure Stack Edge Pro.
Le client exécute Windows PowerShell 5.0 ou une version ultérieure. Pour télécharger la dernière version de Windows PowerShell, accédez à Installation de Windows PowerShell.
Vous pouvez également utiliser un autre client avec un système d’exploitation pris en charge. Cet article décrit la procédure à utiliser avec un client Windows.
Vous avez terminé la procédure décrite dans Accéder au cluster Kubernetes sur l’appareil Azure Stack Edge Pro. Vous disposez de :
- Installé
kubectlsur le client. - Assurez-vous que la version du client
kubectln’est pas décalée de plus d’une version par rapport à la version principale de Kubernetes exécutée sur votre appareil Azure Stack Edge Pro.Utilisez
kubectl versionpour vérifier la version de kubectl en cours d’exécution sur le client. Prenez note de la version complète.Dans l’interface utilisateur locale de votre appareil Azure Stack Edge Pro, accédez à Mise à jour de logiciel et notez le numéro de version du serveur Kubernetes.
Vérifiez que ces deux versions sont compatibles.
- Installé
Inscrire des fournisseurs de ressources Kubernetes
Avant d’activer Azure Arc sur le cluster Kubernetes, vous devez activer et inscrire Microsoft.Kubernetes et Microsoft.KubernetesConfiguration auprès de votre abonnement.
Pour activer un fournisseur de ressources, dans le portail Azure, accédez à l’abonnement que vous envisagez d’utiliser pour le déploiement. Accédez à Fournisseurs de ressources.
Dans le volet droit, recherchez les fournisseurs que vous souhaitez ajouter. Dans cet exemple,
Microsoft.KubernetesetMicrosoft.KubernetesConfiguration.
Sélectionnez un fournisseur de ressources, puis, dans la partie supérieure de la barre de commandes, sélectionnez Inscrire. L’inscription prend quelques minutes.
Actualisez l’interface utilisateur jusqu’à ce que le fournisseur de ressources soit inscrit. Répétez le processus pour les deux fournisseurs de ressources.
Vous pouvez également inscrire des fournisseurs de ressources via az cli. Pour plus d’informations, consultez Inscrire les deux fournisseurs pour Kubernetes avec Azure Arc.
Créer un principal du service, attribuer un rôle
Assurez-vous que vous disposez du
Subscription IDet du nom du groupe de ressources que vous avez utilisé pour le déploiement de ressource pour votre service Azure Stack Edge. Pour accéder à l’ID d’abonnement, accédez à votre ressource Azure Stack Edge dans le portail Azure. Accédez à Vue d’ensemble > Essentiels.
Pour obtenir le nom du groupe de ressources, accédez à Propriétés.
Pour créer un principal de service, utilisez la commande suivante via
az cli.az ad sp create-for-rbac --name "<Informative name for service principal>"Pour plus d’informations sur la façon de se connecter à
az cli, démarrez Cloud Shell dans le Portail Microsoft Azure. Si vous utilisezaz clisur un client local pour créer le principal de service, vérifiez que vous exécutez la version 2.25 ou ultérieure.Voici un exemple.
PS /home/user> az ad sp create-for-rbac --name "https://azure-arc-for-ase-k8s" { "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "displayName": "azure-arc-for-ase-k8s", "name": "https://azure-arc-for-ase-k8s", "password": "<password>", "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } PS /home/user>Notez
appId, lesname,passwordettenantID, car vous utiliserez ces valeurs comme entrée dans la commande suivante.Il existe plusieurs façons d’obtenir
appId. Les trois options suivantes sont les méthodes préférées. Si vous utilisez l’une des options suivantes, vous pouvez ignorer les étapes 1, 2 et 3 de la section précédente et passer directement à l’étape 4 suivante.Option 1 : utilisez Minishell pour exécuter l’applet de commande PowerShell suivante :
[Device-IP]: PS> Get-AzureDataBoxEdgeApplicationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx [Device-IP]: PS>Option 2 : procédez comme suit pour afficher les détails JSON de votre appareil dans le portail Azure :
Accédez à la vue d’ensemble de votre appareil Azure Stack Edge, puis sélectionnez la vue JSON en haut à droite.
Dans les détails JSON de la ressource de votre appareil, notez le
principalId.
Option 3 : utilisez PowerShell non-Azure Stack Edge sur une machine cliente pour exécuter la commande suivante :
// ASE resource group and resource name can be obtained from Azure portal PS C:\> $ASEResource= GetAzResource –ResourceGroupName <resource-group-name> -ResourceName <resource-name> PS C:\> $ASEResource.Identity.PrincipalId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx PS C:\>
Une fois que vous avez créé le principal de service ou que vous l’avez récupéré à l’aide de l’une de ces options, attribuez le
Kubernetes Cluster - Azure Arc Onboardingrôle au principal nouvellement créé. Il s’agit d’un rôle Azure intégré (utilisez l’ID de rôle dans la commande) avec des autorisations limitées. Utilisez la commande suivante :az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee <appId-from-service-principal> --scope /subscriptions/<SubscriptionID>/resourceGroups/<Resource-group-name>Voici un exemple.
PS /home/user> az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --scope /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1 { "canDelegate": null, "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000", "name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "principalType": "ServicePrincipal", "resourceGroup": "myaserg1", "roleDefinitionId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/34e09817-6cbe-4d01-b1a2-e0eac5743d41", "scope": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1", "type": "Microsoft.Authorization/roleAssignments" } PS /home/user>
Activer Arc sur le cluster Kubernetes
Pour configurer le cluster Kubernetes pour la gestion d’Azure Arc, procédez comme suit :
Connectez-vous à l’interface PowerShell de votre appareil.
Exécutez la commande suivante:
Set-HcsKubernetesAzureArcAgent -SubscriptionId "<Your Azure Subscription Id>" -ResourceGroupName "<Resource Group Name>" -ResourceName "<Azure Arc resource name (shouldn't exist already)>" -Location "<Region associated with resource group>" -TenantId "<Tenant Id of service principal>" -ClientId "<App id of service principal>"Après avoir exécuté cette commande, vous verrez un message de suivi vous invitant à spécifier
ClientSecret. Fournissez le mot de passe du principal du service à l’invite.Ajoutez le paramètre
CloudEnvironmentsi vous utilisez un cloud autre que public Azure. Vous pouvez définir ce paramètre surAZUREPUBLICCLOUD,AZURECHINACLOUD,AZUREGERMANCLOUDetAZUREUSGOVERNMENTCLOUD.Considérations relatives à l’utilisation :
- Pour déployer Azure Arc sur votre appareil, vérifiez que vous utilisez une région prise en charge pour Azure Arc.
- Utilisez la commande
az account list-locationspour déterminer le nom exact de l’emplacement à passer dans le cmdletSet-HcsKubernetesAzureArcAgent. Les noms d'emplacement ne comportent généralement pas d'espaces.
Important
Si vous obtenez le
Idau lieu de créer un nouveau principal de service à l’aide de l’ancienne méthode, ne spécifiez pasClientId,TenantIdouClientSecret.Voici un exemple :
[10.100.10.10]: PS>Set-HcsKubernetesAzureArcAgent -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "myaserg1" -ResourceName "myasetestresarc" -Location "westeurope" -TenantId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ClientId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" WARNING: A script or application on the remote computer 10.126.76.0 is sending a prompt request. When you are prompted, enter sensitive information, such as credentials or passwords, only if you trust the remote computer and the application or script that is requesting the data. cmdlet Set-HcsKubernetesAzureArcAgent at command pipeline position 1 Supply values for the following parameters: ClientSecret: ********************************** [10.100.10.10]: PS>Dans le portail Azure, une ressource doit être créée avec le nom que vous avez fourni dans la commande précédente.
Pour vérifier que le service Azure Arc est correctement activé, exécutez la commande suivante à partir de l’interface PowerShell :
kubectl get deployments,pods -n azure-arcVoici un exemple de sortie qui montre les agents Azure Arc déployés sur votre cluster Kubernetes dans l’espace de noms
azure-arc.[10.128.44.240]: PS>kubectl get deployments,pods -n azure-arc NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/cluster-metadata-operator 1/1 1 1 13d deployment.apps/clusterconnect-agent 1/1 1 1 13d deployment.apps/clusteridentityoperator 1/1 1 1 13d deployment.apps/config-agent 1/1 1 1 13d deployment.apps/controller-manager 1/1 1 1 13d deployment.apps/extension-manager 1/1 1 1 13d deployment.apps/flux-logs-agent 1/1 1 1 13d deployment.apps/kube-aad-proxy 1/1 1 1 13d deployment.apps/metrics-agent 1/1 1 1 13d deployment.apps/resource-sync-agent 1/1 1 1 13d NAME READY STATUS RESTARTS AGE pod/cluster-metadata-operator-9568b899c-2stjn 2/2 Running 0 13d pod/clusterconnect-agent-576758886d-vggmv 3/3 Running 0 13d pod/clusteridentityoperator-6f59466c87-mm96j 2/2 Running 0 13d pod/config-agent-7cbd6cb89f-9fdnt 2/2 Running 0 13d pod/controller-manager-df6d56db5-kxmfj 2/2 Running 0 13d pod/extension-manager-58c94c5b89-c6q72 2/2 Running 0 13d pod/flux-logs-agent-6db9687fcb-rmxww 1/1 Running 0 13d pod/kube-aad-proxy-67b87b9f55-bthqv 2/2 Running 0 13d pod/metrics-agent-575c565fd9-k5j2t 2/2 Running 0 13d pod/resource-sync-agent-6bbd8bcd86-x5bk5 2/2 Running 0 13d [10.128.44.240]: PS>
Une vue d’ensemble conceptuelle de ces agents est disponible ici.
Supprimer Arc du cluster Kubernetes
Pour supprimer la gestion d’Azure Arc, procédez comme suit :
Connectez-vous à l’interface PowerShell de votre appareil.
Exécutez la commande suivante:
Remove-HcsKubernetesAzureArcAgent
Remarque
Par défaut, lorsque la ressource yamls est supprimée du référentiel Git, les ressources correspondantes ne sont pas supprimées du cluster Kubernetes. Vous devez définir --sync-garbage-collection dans Arc OperatorParams pour autoriser la suppression des ressources lorsqu'elles sont supprimées du référentiel Git. Pour plus d'informations, consultez Supprimer une configuration.
Étapes suivantes
Pour comprendre comment exécuter un déploiement Azure Arc, consultez Déployer une application PHP Guestbook sans état avec Redis via GitOps sur un appareil Azure Stack Edge Pro.