Habilitación de Azure Arc en un clúster de Kubernetes en el dispositivo Azure Stack Edge Pro con GPU
SE APLICA A: Azure Stack Edge Pro: GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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:
- 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.
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 tener 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. 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.
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.Kubernetes
yMicrosoft.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 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.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 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>
Tome nota de los valores de
appID
,name
,password
ytenantID
, ya que los utilizará como entrada en el siguiente comando.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:
Conéctese a la interfaz de PowerShell del dispositivo.
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 enAZUREPUBLICCLOUD
,AZURECHINACLOUD
,AZUREGERMANCLOUD
yAZUREUSGOVERNMENTCLOUD
.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 cmdletSet-HcsKubernetesAzureArcAgent
. Normalmente, los nombres de las ubicaciones tienen un formato sin espacios. - Son necesarios
ClientId
yClientSecret
.
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-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:
-
- Conéctese a la interfaz de PowerShell del dispositivo.
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.