Compartir a través de


Habilitación de Azure Arc en un clúster de Kubernetes en el dispositivo Azure Stack Edge Pro con GPU

SE APLICA A:Sí para Pro: SKU de GPUAzure Stack Edge Pro con GPUSí para Pro 2 SKUAzure Stack Edge Pro 2Sí para la SKU de Pro RAzure Stack Edge Pro RSí para Mini R SKUAzure Stack Edge Mini R

En este artículo se muestra cómo habilitar Azure Arc en un clúster de Kubernetes existente en el dispositivo Azure Stack Edge Pro.

En este procedimiento se supone que ha leído y comprendido los siguientes artículos:

Requisitos previos

Asegúrese de que ha completado los siguientes requisitos previos en el dispositivo Azure Stack Edge Pro y en el cliente que usa para acceder al dispositivo:

Para el dispositivo

  1. Tiene credenciales de inicio de sesión en un dispositivo Azure Stack Edge Pro de un nodo.

    1. El dispositivo está activado. Consulte Activación del dispositivo.
    2. El dispositivo tiene el rol de proceso configurado desde Azure Portal y un clúster de Kubernetes. Consulte Configuración del proceso.
  2. Ya tiene acceso de propietario a la suscripción. Necesita este acceso durante el paso de asignación de roles para la entidad de servicio.

Para el cliente que va a acceder al dispositivo

  1. Tiene un sistema cliente de Windows que se usa para acceder al dispositivo Azure Stack Edge Pro.

    • El cliente ejecuta Windows PowerShell 5.0 o una versión posterior. Para descargar la última versión de Windows PowerShell, vaya a Instalación de Windows PowerShell.

    • También puede utilizar cualquier otro cliente con un sistema operativo compatible. En este artículo, el procedimiento que se describe emplea un cliente Windows.

  2. Ha completado el procedimiento descrito en Acceso al clúster de Kubernetes en el dispositivo Azure Stack Edge Pro. Tiene:

    • instalado kubectl en el cliente.
    • Asegúrese de que la versión del cliente de kubectl es como máximo una versión superior o inferior a la versión maestra de Kubernetes que se ejecuta en el dispositivo Azure Stack Edge Pro.
      • Use kubectl version para comprobar la versión de kubectl que se ejecuta en el cliente. Anote la versión completa.

      • En la interfaz de usuario local del dispositivo Azure Stack Edge Pro, vaya a Actualización de software y anote el número de versión del servidor de Kubernetes.

        Captura de pantalla de comprobación del número de versión del servidor de Kubernetes.

      • Compruebe que estas dos versiones son compatibles.

Registro de proveedores de recursos de Kubernetes

Antes de habilitar Azure Arc en el clúster de Kubernetes, debe habilitar y registrar Microsoft.Kubernetes y Microsoft.KubernetesConfiguration en su suscripción.

  1. Para habilitar un proveedor de recursos, en Azure Portal, vaya a la suscripción que piensa usar para la implementación. Vaya a Proveedores de recursos.

  2. En el panel de la derecha, busque los proveedores que desee agregar. En este ejemplo, Microsoft.Kubernetes y Microsoft.KubernetesConfiguration.

    Captura de pantalla del registro de proveedores de recursos de Kubernetes.

  3. Seleccione un proveedor de recursos y, en la parte superior de la barra de comandos, seleccione Registrar. El proceso de registro tarda varios minutos.

    Captura de pantalla del registro de proveedores de recursos de Kubernetes 2.

  4. Actualice la interfaz de usuario hasta que vea que el proveedor de recursos está registrado. Repita el proceso con ambos proveedores de recursos.

    Captura de pantalla del registro de proveedores de recursos de Kubernetes 3.

También puede registrar proveedores de recursos con az cli. Para más información, consulte Registro de dos proveedores para Kubernetes habilitado para Azure Arc.

Creación de una entidad de servicio y asignación del rol

  1. Asegúrese de que tiene el valor de Subscription ID y el nombre del grupo de recursos que usó para la implementación de recursos en el servicio de Azure Stack Edge. Para obtener el identificador de suscripción, vaya al recurso de Azure Stack Edge en Azure Portal. Vaya a Información general > Información esencial.

    Captura de pantalla de obtención del identificador de suscripción.

    Para obtener el nombre del grupo de recursos, vaya a Propiedades.

    Captura de pantalla de obtención del nombre del grupo de recursos.

  2. Para crear una entidad de servicio, use el siguiente comando en az cli.

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

    Para obtener información sobre cómo iniciar sesión en az cli, consulte Inicio de Cloud Shell en Azure Portal. Si usa az cli en un cliente local para crear la entidad de servicio, asegúrese de que está ejecutando la versión 2.25 o posterior.

    Este es un ejemplo.

    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. Tome nota de los valores de appId, name, password y tenantID, ya que los utilizará como entrada en el siguiente comando.

    Hay varias maneras de obtener appId. Las tres opciones siguientes son los métodos preferidos. Si usa una de las siguientes opciones, puede omitir los pasos 1, 2 y 3 de la sección anterior y pasar directamente al paso 4 siguiente.

    • Opción 1: Use Minishell para ejecutar el siguiente cmdlet de PowerShell:

      [Device-IP]: PS> Get-AzureDataBoxEdgeApplicationId
      xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      [Device-IP]: PS>
      
    • Opción 2: Siga estos pasos para ver los detalles json del dispositivo en Azure Portal:

      1. Vaya a la información general del dispositivo Azure Stack Edge y, a continuación, seleccione Vista JSON en la parte superior derecha.

        Captura de pantalla de la página Vista general del dispositivo Azure Stack Edge.

      2. En los detalles de RESOURCE JSON del dispositivo, anote principalId.

        Captura de pantalla de la visualización de los detalles de JSON del dispositivo Azure Stack Edge.

    • Opción 3: Use PowerShell que no es azure Stack Edge en un equipo cliente para ejecutar el siguiente comando:

      // 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. Después de crear la nueva entidad de servicio o después de recuperarla mediante una de estas opciones, asigne el rol Kubernetes Cluster - Azure Arc Onboarding a la entidad de servicio recién creada. Se trata de un rol integrado de Azure (use el identificador de rol en el comando) con permisos limitados. Use el comando siguiente:

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

    Este es un ejemplo.

    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>
    

Habilitación de Arc en el clúster de Kubernetes

Siga estos pasos para configurar el clúster de Kubernetes para la administración de Azure Arc:

  1. Conéctese a la interfaz de PowerShell del dispositivo.

  2. Ejecute el siguiente comando:

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

    Después de ejecutar este comando, verá un aviso de seguimiento para especificar ClientSecret. Proporcione la contraseña de la entidad de servicio en el símbolo del sistema.

    Agregue el parámetro CloudEnvironment si usa una nube que no sea la pública de Azure. Puede establecer este parámetro en AZUREPUBLICCLOUD, AZURECHINACLOUD, AZUREGERMANCLOUD y AZUREUSGOVERNMENTCLOUD.

    Consideraciones de uso:

    • Para implementar Azure Arc en el dispositivo, asegúrese de que usa una región admitida para Azure Arc.
    • Use el comando az account list-locations para averiguar el nombre exacto de la ubicación que se va a pasar en el cmdlet Set-HcsKubernetesAzureArcAgent. Normalmente, los nombres de las ubicaciones tienen un formato sin espacios.

    Importante

    Si obtiene en Id lugar de crear un nuevo principio de servicio mediante el método anterior, no especifique ClientId, TenantId ni ClientSecret.

    Este es un ejemplo:

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

    En Azure Portal, se debe crear un recurso con el nombre que ha proporcionado en el comando anterior.

    Captura de pantalla de ir al recurso de Azure Arc.

  3. Para comprobar que Azure Arc se ha habilitado correctamente, ejecute el siguiente comando desde la interfaz de PowerShell:

    kubectl get deployments,pods -n azure-arc

    Este es un ejemplo de salida que muestra los agentes de Azure Arc que se implementaron en el clúster de Kubernetes en el espacio de nombres 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>
    

Puede obtener información general conceptual de estos agentes aquí.

Eliminación de Arc del clúster de Kubernetes

Para eliminar la administración de Azure Arc, siga estos pasos:

  1. Conéctese a la interfaz de PowerShell del dispositivo.

  2. Ejecute el siguiente comando:

    Remove-HcsKubernetesAzureArcAgent

Nota:

De forma predeterminada, cuando el recurso yamls se elimina del repositorio de Git, los recursos correspondientes no se eliminan del clúster de Kubernetes. Debe establecer --sync-garbage-collection en Arc OperatorParams para permitir la eliminación de recursos cuando se eliminen del repositorio de Git. Para obtener más información, consulte Eliminación de una configuración.

Pasos siguientes

Para comprender cómo ejecutar una implementación de Azure Arc, consulte Implementación de una aplicación PHP Guestbook sin estado con Redis a través de GitOps en un dispositivo Azure Stack Edge Pro.