Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
Azure Stack Edge Pro con GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure 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.
Nota:
Siga las instrucciones de Inicio rápido: Conexión de un clúster de Kubernetes existente a Azure Arc.
En este procedimiento se supone que ha leído y comprendido los siguientes artículos:
- Cargas de trabajo de Kubernetes en el dispositivo Azure Stack Edge Pro.
- ¿Qué es Kubernetes habilitado para Azure Arc (versión preliminar)?
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
Tiene credenciales de inicio de sesión en un dispositivo Azure Stack Edge Pro de un nodo.
- El dispositivo está activado. Consulte Activación del dispositivo.
- El dispositivo tiene el rol de proceso configurado desde Azure Portal y un clúster de Kubernetes. Consulte Configuración del proceso.
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
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.
Ha completado el procedimiento descrito en Acceso al clúster de Kubernetes en el dispositivo Azure Stack Edge Pro. Tiene:
- instalado
kubectlen el cliente. - Asegúrese de que la versión del cliente de
kubectles 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 versionpara 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.
Compruebe que estas dos versiones son compatibles.
- instalado
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.
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.
En el panel de la derecha, busque los proveedores que desee agregar. En este ejemplo,
Microsoft.KubernetesyMicrosoft.KubernetesConfiguration.
Seleccione un proveedor de recursos y, en la parte superior de la barra de comandos, seleccione Registrar. El proceso de registro tarda varios minutos.
Actualice la interfaz de usuario hasta que vea que el proveedor de recursos está registrado. Repita el proceso con ambos proveedores de recursos.
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
Asegúrese de que tiene el valor de
Subscription IDy 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.
Para obtener el nombre del grupo de recursos, vaya a Propiedades.
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 usaaz clien 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>Tome nota de los valores de
appId,name,passwordytenantID, 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:
Vaya a la información general del dispositivo Azure Stack Edge y, a continuación, seleccione Vista JSON en la parte superior derecha.
En los detalles de RESOURCE JSON del dispositivo, anote
principalId.
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:\>
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 Onboardinga 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:
Conéctese a la interfaz de PowerShell del dispositivo.
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
CloudEnvironmentsi usa una nube que no sea la pública de Azure. Puede establecer este parámetro enAZUREPUBLICCLOUD,AZURECHINACLOUD,AZUREGERMANCLOUDyAZUREUSGOVERNMENTCLOUD.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-locationspara averiguar el nombre exacto de la ubicación que se va a pasar en el cmdletSet-HcsKubernetesAzureArcAgent. Normalmente, los nombres de las ubicaciones tienen un formato sin espacios.
Importante
Si obtiene en
Idlugar de crear un nuevo principio de servicio mediante el método anterior, no especifiqueClientId,TenantIdniClientSecret.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.
Para comprobar que Azure Arc se ha habilitado correctamente, ejecute el siguiente comando desde la interfaz de PowerShell:
kubectl get deployments,pods -n azure-arcEste 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:
Conéctese a la interfaz de PowerShell del dispositivo.
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.