Abilitare Azure Arc nel cluster Kubernetes nel dispositivo Azure Stack Edge Pro con GPU

SI APPLICA A: Sì per SKU GPU ProAzure Stack Edge Pro - GPUSì per lo SKU Pro 2Azure Stack Edge Pro 2Sì per SKU R ProAzure Stack Edge Pro RSì per SKU R MiniAzure Stack Edge Mini R

Questo articolo illustra come abilitare Azure Arc in un cluster Kubernetes esistente nel dispositivo Azure Stack Edge Pro.

Questa procedura presuppone che si abbia letto e compreso gli articoli seguenti:

Prerequisiti

Assicurarsi di aver completato i prerequisiti seguenti nel dispositivo Azure Stack Edge Pro e nel client usato per accedere al dispositivo:

Per il dispositivo

  1. Si dispone di credenziali di accesso a un dispositivo Azure Stack Edge Pro a 1 nodo.

    1. Il dispositivo viene attivato. Vedere Attivare il dispositivo.
    2. Il dispositivo ha il ruolo di calcolo configurato tramite il portale di Azure e ha un cluster Kubernetes. Vedere Configurare il calcolo.
  2. Si dispone dell’accesso come proprietario alla sottoscrizione. Questo accesso è necessario durante il passaggio di assegnazione di ruolo per l’entità servizio.

Per l’accesso del client al dispositivo

  1. Si dispone di un sistema client Windows usato per accedere al dispositivo Azure Stack Edge Pro.

    • Il client esegue Windows PowerShell 5.0 o versione successiva. Per scaricare la versione più recente di Windows PowerShell, passare a Installare Windows PowerShell.

    • È possibile avere anche qualsiasi altro client con un sistema operativo supportato. Questo articolo descrive la procedura quando si usa un client Windows.

  2. È stata completata la procedura descritta in Accedere al cluster Kubernetes nel dispositivo Azure Stack Edge Pro. Precisamente:

    • È stato installato kubectl nel client.
    • Assicurarsi che la versione del client kubectl non sia oltre una versione diversa, precedente o successiva, rispetto alla versione master di Kubernetes in esecuzione nel dispositivo Azure Stack Edge Pro.
      • Usare kubectl version per controllare la versione di kubectl in esecuzione nel client. Prendere nota della versione completa.

      • Nell’interfaccia utente locale del dispositivo Azure Stack Edge Pro, passare a Aggiornamento software e prendere nota del numero di versione del server Kubernetes.

        Verificare il numero di versione del server Kubernetes

      • Verificare che queste due versioni siano compatibili.

Registrare i provider di risorse Kubernetes

Prima di abilitare Azure Arc nel cluster Kubernetes, è necessario abilitare e registrare Microsoft.Kubernetes e Microsoft.KubernetesConfiguration nella sottoscrizione.

  1. Per abilitare un provider di risorse, passare alla sottoscrizione che si prevede di usare per la distribuzione nel portale di Azure. Passare a Provider di risorse.

  2. Nel riquadro destro, cercare i provider da aggiungere. In questo esempio, Microsoft.Kubernetes e Microsoft.KubernetesConfiguration.

    Registrare i provider di risorse Kubernetes

  3. Selezionare un provider di risorse e, nella parte superiore della barra dei comandi, selezionare Registra. La registrazione richiede alcuni minuti.

    Registrare provider di risorse Kubernetes 2

  4. Aggiornare l’interfaccia utente finché non viene visualizzato che il provider di risorse è stato registrato. Ripetere il processo per entrambi i provider di risorse.

    Registrare i provider di risorse Kubernetes 3

È anche possibile registrare i provider di risorse tramite az cli. Per altre informazioni, vedere Registrare i due provider per Kubernetes abilitato per Azure Arc.

Creare un’entità servizio, assegnare il ruolo

  1. Assicurarsi di avere Subscription ID e il nome del gruppo di risorse usato per la distribuzione delle risorse per il servizio Azure Stack Edge. Per ottenere l’ID sottoscrizione, passare alla risorsa Azure Stack Edge nel portale di Azure. Passare a Panoramica > Essenziali.

    Ottenere l'ID sottoscrizione

    Per ottenere il nome del gruppo di risorse, passare a Proprietà.

    Ottenere il nome del gruppo di risorse

  2. Per creare un’entità servizio, usare il comando seguente tramite az cli.

    az ad sp create-for-rbac --name "<Informative name for service principal>"

    Per informazioni su come accedere ad az cli, Avviare Cloud Shell nel portale di Azure. Se si usa az cli in un client locale per creare l’entità servizio, assicurarsi di stare eseguendo la versione 2.25 o successiva.

    Ecco un esempio.

    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. Prendere nota di appID, name, password e tenantID perché si useranno questi valori come input per il comando successivo.

  4. Dopo aver creato la nuova entità servizio, assegnare il ruolo Kubernetes Cluster - Azure Arc Onboarding all’entità appena creata. Si tratta di un ruolo predefinito di Azure con autorizzazioni limitate (usare l’ID ruolo nel comando). Usare il comando seguente:

    az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee <appId-from-service-principal> --scope /subscriptions/<SubscriptionID>/resourceGroups/<Resource-group-name>

    Ecco un esempio.

    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>
    

Abilitare Arc nel cluster Kubernetes

Seguire questa procedura per configurare il cluster Kubernetes per la gestione di Azure Arc:

  1. Connettersi all’interfaccia di PowerShell del dispositivo.

  2. Tipo:

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

    Quando questo comando viene eseguito, verrà visualizzato un prompt di completamento per immettere ClientSecret. Specificare la password dell’entità servizio.

    Aggiungere il parametro CloudEnvironment se si usa un cloud diverso da quello pubblico di Azure. È possibile impostare questo parametro su AZUREPUBLICCLOUD, AZURECHINACLOUD, AZUREGERMANCLOUD e AZUREUSGOVERNMENTCLOUD.

    Nota

    • Per distribuire Azure Arc nel dispositivo, assicurarsi di usare un’Area supportata per Azure Arc.
    • Usare il comando az account list-locations per individuare il nome esatto della posizione da passare al cmdlet Set-HcsKubernetesAzureArcAgent. I nomi di posizione vengono in genere formattati senza spazi.
    • Sono necessari ClientId e ClientSecret.

    Ecco un esempio:

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

    Nel portale di Azure, deve essere creata una risorsa con il nome specificato nel comando precedente.

    Passare alla risorsa di Azure Arc

  3. Per verificare che Azure Arc sia abilitato correttamente, eseguire il comando seguente dall’interfaccia di PowerShell:

    kubectl get deployments,pods -n azure-arc

    Ecco un output di esempio che mostra gli agenti di Azure Arc distribuiti nel cluster Kubernetes nello spazio dei nomi 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>
    

Una panoramica concettuale di questi agenti è disponibile qui.

Rimuovere Arc dal cluster Kubernetes

Per rimuovere la gestione di Azure Arc, seguire questa procedura:

    1. Connettersi all’interfaccia di PowerShell del dispositivo.
  1. Tipo:

    Remove-HcsKubernetesAzureArcAgent

Nota

Per impostazione predefinita, quando gli yamls delle risorse vengono eliminati dal repository Git, le risorse corrispondenti non vengono eliminate dal cluster Kubernetes. È necessario impostare --sync-garbage-collection in Arc OperatorParams per consentire l’eliminazione delle risorse quando vengono eliminate dal repository Git. Per altre informazioni, vedere Eliminare una configurazione

Passaggi successivi

Per informazioni su come eseguire una distribuzione di Azure Arc, vedere Distribuire un’applicazione PHP senza statoGuestbook con Redis tramite GitOps in un dispositivo Azure Stack Edge Pro