Creación y administración de ubicaciones personalizadas en Kubernetes habilitado para Azure Arc

La característica ubicaciones personalizadas proporciona una manera de configurar los clústeres de Kubernetes habilitados para Azure Arc como ubicaciones de destino para implementar instancias de ofertas de Azure. Entre los ejemplos de ofertas de Azure que se pueden implementar en las ubicaciones personalizadas se incluyen bases de datos como SQL Managed Instance habilitado para Azure Arc y el servidor de PostgreSQL habilitado para Azure Arc, o instancias de aplicación como App Services, Functions, Event Grid, Logic Apps y API Management.

Una ubicación personalizada tiene una asignación uno a uno a un espacio de nombres dentro del clúster de Kubernetes habilitado para Azure Arc. El recurso de Azure de ubicación personalizada combinado con el control de acceso basado en rol de Azure (RBAC de Azure) se puede usar para conceder permisos pormenorizados a desarrolladores de aplicaciones o administradores de bases de datos, lo que les permite implementar recursos como bases de datos o instancias de aplicación sobre clústeres de Kubernetes habilitados para Arc en un entorno multiinquilino.

En este artículo, aprenderá a habilitar ubicaciones personalizadas en un clúster de Kubernetes habilitado para Arc y a crear una ubicación personalizada.

Requisitos previos

  • Instale la CLI de Azure más reciente o actualice la que ya tiene a la versión más reciente.

  • Instale las versiones más recientes de las siguientes extensiones de la CLI de Azure:

    • connectedk8s

    • k8s-extension

    • customlocation

      az extension add --name connectedk8s
      az extension add --name k8s-extension
      az extension add --name customlocation
      

      Si ya ha instalado las extensiones connectedk8s, k8s-extension y customlocation, actualícelas a la versión más reciente usando el siguiente comando:

      az extension update --name connectedk8s
      az extension update --name k8s-extension
      az extension update --name customlocation
      
  • Compruebe que se completó el registro de proveedor de Microsoft.ExtendedLocation.

    1. Escriba los siguientes comandos:

      az provider register --namespace Microsoft.ExtendedLocation
      
    2. Supervise el proceso de registro. El registro puede tardar un máximo de 10 minutos.

      az provider show -n Microsoft.ExtendedLocation -o table
      

      Una vez que se registre, el estado RegistrationState tendrá el valor Registered.

  • Compruebe que ya tiene un clúster conectado a Kubernetes habilitado para Azure Arc y actualizar los agentes a la versión más reciente. Confirme que la máquina en la que ejecutará los comandos descritos en este artículo tiene un archivo kubeconfig que apunta a este clúster.

Habilitación de ubicaciones personalizadas en el clúster

Sugerencia

La característica de ubicaciones personalizadas depende de la característica conexión de clúster. Ambas características deben estar habilitadas en el clúster para que funcionen las ubicaciones personalizadas.

Si ha iniciado sesión en la CLI de Azure como usuario de Microsoft Entra, use el siguiente comando:

az connectedk8s enable-features -n <clusterName> -g <resourceGroupName> --features cluster-connect custom-locations

Si ejecuta el comando anterior con la sesión iniciada en la CLI de Azure mediante una entidad de servicio, puede observar la advertencia siguiente:

Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.

Esto se debe a que una entidad de servicio no tiene permisos para obtener la información de la aplicación usada por el servicio Azure Arc. Para evitar este error, siga los pasos a continuación:

  1. Inicie sesión en la CLI de Azure con su cuenta de usuario. Capture el objectId o id de la aplicación Microsoft Entra que usa el servicio Azure Arc mediante el comando siguiente:

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  2. Inicie sesión en la CLI de Azure mediante la entidad de servicio. Use el valor <objectId> o id del paso anterior para habilitar el uso de ubicaciones personalizadas en el clúster:

    az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId/id> --features cluster-connect custom-locations
    

Creación de una ubicación personalizada

  1. Implemente la extensión de clúster de servicio de Azure de la instancia de servicio de Azure que desea instalar en el clúster:

  2. Obtenga el identificador de Azure Resource Manager del clúster de Kubernetes habilitado para Azure Arc, al que se hace referencia en pasos posteriores como connectedClusterId:

    az connectedk8s show -n <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  3. Obtenga el identificador de Azure Resource Manager de la extensión de clúster que implementó en el clúster de Kubernetes habilitado para Azure Arc, al que se hace referencia en pasos posteriores como extensionId:

    az k8s-extension show --name <extensionInstanceName> --cluster-type connectedClusters -c <clusterName> -g <resourceGroupName>  --query id -o tsv
    
  4. Cree la ubicación personalizada mediante una referencia al clúster de Kubernetes habilitado para Azure Arc y la extensión:

    az customlocation create -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionId> 
    
    • Parámetros obligatorios:

      Nombre de parámetro Descripción
      --name, --n Nombre de la ubicación personalizada.
      --resource-group, --g Grupo de recursos de la ubicación personalizada.
      --namespace Espacio de nombres del clúster enlazado a la ubicación personalizada que se va a crear.
      --host-resource-id Identificador de Azure Resource Manager del clúster de Kubernetes habilitado para Azure Arc (clúster conectado).
      --cluster-extension-ids Identificador de Azure Resource Manager de una instancia de extensión de clúster instalada en el clúster conectado. Para varias extensiones, proporcione una lista separada por espacios de identificadores de extensión de clúster
    • Parámetros opcionales:

      Nombre de parámetro Descripción
      --location, --l Ubicación del recurso de Azure Resource Manager de la ubicación personalizada en Azure. Si no se especifica, se usa la ubicación del clúster conectado.
      --tags Lista separada por espacios de etiquetas con el formato key[=value]. Use “” para borrar las etiquetas existentes.
      --kubeconfig Administrador kubeconfig del clúster.

Visualización de los detalles de una ubicación personalizada

Para mostrar los detalles de una ubicación personalizada, use el siguiente comando:

az customlocation show -n <customLocationName> -g <resourceGroupName> 

Enumeración de ubicaciones personalizadas

Para obtener una lista de todas las ubicaciones personalizadas en un grupo de recursos, utilice el siguiente comando:

az customlocation list -g <resourceGroupName> 

Actualización de una ubicación personalizada

Use el comando update para agregar nuevos valores para --tags o asociar nuevos --cluster-extension-ids a la ubicación personalizada, a la vez que conserva los valores existentes para las etiquetas y las extensiones de clúster asociadas.

az customlocation update -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds> 

Revisión de una ubicación personalizada

Use el comando patch para reemplazar los valores existentes de --cluster-extension-ids o --tags. Los valores anteriores no se conservan.

az customlocation patch -n <customLocationName> -g <resourceGroupName> --namespace <name of namespace> --host-resource-id <connectedClusterId> --cluster-extension-ids <extensionIds> 

Eliminación de una ubicación personalizada

Para eliminar una ubicación personalizada, use el siguiente comando:

az customlocation delete -n <customLocationName> -g <resourceGroupName> 

Solución de problemas

Si se produce un error en la creación de la ubicación personalizada Unknown proxy error occurred, modifique la directiva de red para permitir la comunicación interna de pod a pod dentro del espacio de nombres azure-arc. Asegúrese de agregar también el espacio de nombres azure-arc como parte de la lista de exclusión sin proxy para la directiva configurada.

Pasos siguientes