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

S’APPLIQUE À :Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure 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 de 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 Access the Kubernetes cluster on Azure Stack Edge Pro device. Vous avez :

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

        Verify Kubernetes server version number

      • 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 et inscrire Microsoft.Kubernetes votre Microsoft.KubernetesConfiguration 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.

    Register Kubernetes resource providers

  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.

    Register Kubernetes resource providers 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.

    Register Kubernetes resource providers 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.

    Get subscription ID

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

    Get resource group name

  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.

    Prenons 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 les appIDvaleurs suivantes : vous passwordnametenantID allez utiliser ces valeurs comme entrée dans la commande suivante.

  4. Après avoir créé le principal de service, attribuez le rôle Kubernetes Cluster - Azure Arc Onboarding 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>

    Prenons 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/59272f92-e5ce-4aeb-9c0c-62532d8caf25",
      "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. Tapez :

    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>"

    Lorsque cette commande est exécutée, il existe une invite de suivi pour entrer le ClientSecret. Fournissez le mot de passe du principal de service.

    Ajoutez le CloudEnvironment paramètre si vous utilisez un cloud autre que public Azure. Vous pouvez définir ce paramètre sur AZUREPUBLICCLOUD, AZURECHINACLOUD, AZUREGERMANCLOUD et AZUREUSGOVERNMENTCLOUD.

    Remarque

    • Pour déployer Azure Arc sur votre appareil, vous devez utiliser une Région prise en charge pour Azure Arc.
    • Utilisez la commande az account list-locations pour connaître le nom exact de l'emplacement à transmettre dans la cmdlet Set-HcsKubernetesAzureArcAgent. Les noms d'emplacement ne comportent généralement pas d'espaces.
    • ClientId et ClientSecret sont requis.

    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.

    Go to Azure Arc resource

  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 qui ont été déployés sur votre cluster Kubernetes dans l’espace azure-arc de noms.

    [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.
  1. Tapez :

    Remove-HcsKubernetesAzureArcAgent

Remarque

Par défaut, lorsque les ressources yamls sont supprimées 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éploiement d’une application PHP Guestbook sans état avec Redis via GitOps sur un appareil Azure Stack Edge Pro.