Compartir vía


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 GPU SKUAzure Stack Edge Pro: GPUSí para Pro 2 SKUAzure Stack Edge Pro 2Sí para Pro R SKUAzure 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. 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 tener 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. Ha:

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

        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.

    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.

    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.

    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.

    Obtener id. de suscripción

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

    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.

  4. Después de crear la nueva entidad de servicio, asígnele el rol Kubernetes Cluster - Azure Arc Onboarding. Se trata de un rol integrado de Azure (use el identificador de rol en el comando) con permisos limitados. Use el siguiente comando :

    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. Escriba:

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

    Cuando se ejecuta este comando, hay un mensaje de seguimiento para escribir el valor ClientSecret. Proporcione la contraseña de la entidad de servicio.

    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.

    Nota:

    • para implementar Azure Arc en un dispositivo, asegúrese de que está usando una región admitida de 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.
    • Son necesarios ClientId y 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.

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

    Remove-HcsKubernetesAzureArcAgent

Nota:

De manera predeterminada, cuando el recurso yamls se elimina del repositorio de Git, no se eliminan los recursos correspondientes 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 saber cómo ejecutar una implementación de Azure Arc, consulte Implementación de una aplicación sin estado de Guestbook PHP con Redis a través de GitOps en un dispositivo de Azure Stack Edge Pro.