Partager via


Activer Azure Arc sur un cluster Kubernetes sur votre appareil avec GPU Azure Stack Edge Pro

S’APPLIQUE À :Oui pour la référence SKU Pro GPUAzure Stack Edge Pro - GPUOui pour la référence SKU Pro 2Azure Stack Edge Pro 2Oui pour la référence SKU Pro RAzure Stack Edge Pro ROui pour la référence SKU Mini RAzure Stack Edge Mini R

Cet article explique comment activer Azure Arc sur un cluster Kubernetes existant sur votre appareil Azure Stack Edge Pro.

Cette procédure suppose que vous avez lu et compris les articles suivants :

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

  1. Vous avez les informations d’identification de connexion à un appareil Azure Stack Edge Pro à 1 nœud.

    1. L’appareil est activé. Voir Activer l’appareil.
    2. 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.
  2. 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

  1. Vous disposez d’un système client Windows utilisé pour accéder à l’appareil Azure Stack Edge Pro.

  2. 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é kubectl sur le client.
    • Assurez-vous que la version du client kubectl n’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 version pour 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.

        Capture d’écran de la vérification du numéro de version du serveur Kubernetes.

      • Vérifiez que ces deux versions sont compatibles.

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.

  1. 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.

  2. Dans le volet droit, recherchez les fournisseurs que vous souhaitez ajouter. Dans cet exemple, Microsoft.Kubernetes et Microsoft.KubernetesConfiguration.

    Capture d’écran de l’inscription des fournisseurs de ressources Kubernetes.

  3. 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.

    Capture d’écran de l’inscription des fournisseurs de ressources Kubernetes 2.

  4. Actualisez l’interface utilisateur jusqu’à ce que le fournisseur de ressources soit inscrit. Répétez le processus pour les deux fournisseurs de ressources.

    Capture d’écran de l’inscription des fournisseurs de ressources Kubernetes 3.

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

  1. Assurez-vous que vous disposez du Subscription ID et 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.

    Capture d’écran pour obtenir l’ID d’abonnement.

    Pour obtenir le nom du groupe de ressources, accédez à Propriétés.

    Capture d’écran de l’obtention du nom de groupe de ressources.

  2. 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 utilisez az cli sur 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>
    
  3. Notez appId, les name, passwordet tenantID, 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 :

      1. Accédez à la vue d’ensemble de votre appareil Azure Stack Edge, puis sélectionnez la vue JSON en haut à droite.

        Capture d’écran de la page Vue d’ensemble de votre appareil Azure Stack Edge.

      2. Dans les détails JSON de la ressource de votre appareil, notez le principalId.

        Capture d’écran de l’affichage des détails JSON pour votre appareil Azure Stack Edge.

    • 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:\>
      
  4. 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 Onboarding rô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 :

  1. Connectez-vous à l’interface PowerShell de votre appareil.

  2. 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 CloudEnvironment si vous utilisez un cloud autre que public Azure. Vous pouvez définir ce paramètre sur AZUREPUBLICCLOUD, AZURECHINACLOUD, AZUREGERMANCLOUD et AZUREUSGOVERNMENTCLOUD.

    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-locations pour déterminer le nom exact de l’emplacement à passer dans le cmdlet Set-HcsKubernetesAzureArcAgent. Les noms d'emplacement ne comportent généralement pas d'espaces.

    Important

    Si vous obtenez le Id au lieu de créer un nouveau principal de service à l’aide de l’ancienne méthode, ne spécifiez pas ClientId, TenantId ou ClientSecret.

    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.

    Capture d’écran de la ressource Azure Arc.

  3. 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-arc

    Voici 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 :

  1. Connectez-vous à l’interface PowerShell de votre appareil.

  2. 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.