Share via


Inicio rápido: Implementación de Operaciones de IoT de Azure (versión preliminar) en un clúster de Kubernetes habilitado para Arc

Importante

Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.

Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

En este inicio rápido, implementará un conjunto de servicios de IoT en un clúster de Kubernetes habilitado para Azure Arc para que pueda administrar de forma remota los dispositivos y las cargas de trabajo. Azure IoT Operations es un conjunto de operaciones digitales de servicios que incluye la versión preliminar de Azure IoT Orchestrator. En esta guía de inicio rápido se explica cómo usar Orchestrator para implementar estos servicios en un clúster de Kubernetes. Al final del inicio rápido, tiene un clúster que puede administrar desde la nube que genera datos de muestra que se usarán en los siguientes inicios rápidos.

Los servicios que se implementan en esta guía de inicio rápido son:

Los siguientes inicios rápidos de esta serie se basan en este para definir recursos de ejemplo, canalizaciones de procesamiento de datos y visualizaciones. Si quiere implementar Azure IoT Operations para ejecutar sus propias cargas de trabajo, consulte Preparación del clúster de Kubernetes habilitado para Azure Arc y Implementación de extensiones de versión preliminar de operaciones de Azure IoT en un clúster de Kubernetes.

Antes de empezar

Esta serie de inicios rápidos está pensada para ayudarle a empezar a usar Operaciones de IoT de Azure lo más rápido posible para poder evaluar un escenario de un extremo a otro. En un entorno de desarrollo o producción verdadero, estas tareas las realizarían varios equipos trabajando juntos y algunas tareas podrían requerir permisos elevados.

Para obtener la mejor experiencia de usuario nueva, se recomienda usar una cuenta gratuita de Azure para que tenga permisos de propietario sobre los recursos de estos inicios rápidos. También se proporcionan pasos para usar GitHub Codespaces como entorno virtual en el que puede empezar rápidamente a implementar recursos y ejecutar comandos sin instalar nuevas herramientas en sus propias máquinas.

Requisitos previos

En este inicio rápido, creará un clúster de Kubernetes para recibir la implementación de Operaciones de IoT de Azure.

Si desea volver a ejecutar este inicio rápido con un clúster que ya tiene implementadas operaciones de Azure IoT, consulte los pasos descritos en Limpieza de recursos para desinstalar operaciones de Azure IoT antes de continuar.

Antes de comenzar, prepare los siguientes requisitos previos:

¿Qué problema resolveremos?

Operaciones de IoT de Azure es un conjunto de servicios de datos que se ejecutan en clústeres de Kubernetes. Quiere que estos clústeres se administren de forma remota desde la nube y puedan comunicarse de forma segura con los puntos de conexión y los recursos en la nube. En esta guía de inicio rápido abordamos estas cuestiones con las siguientes tareas:

  1. Cree un clúster de Kubernetes y conéctelo a Azure Arc para la administración remota.
  2. Crear una instancia de Azure Key Vault para administrar secretos para el clúster.
  3. Configurar el clúster con un almacén de secretos y una entidad de servicio para comunicarse con los recursos en la nube.
  4. Implementar Operaciones de IoT de Azure en el clúster.

Conexión de un clúster de Kubernetes a Azure Arc

Operaciones de IoT de Azure debe funcionar en cualquier clúster de Kubernetes que se ajuste a los estándares de Cloud Native Computing Foundation (CNCF). Para este inicio rápido, use GitHub Codespaces para hospedar el clúster.

En esta sección, creará un nuevo clúster y lo conectará a Azure Arc. Si desea reutilizar un clúster en el que ha implementado operaciones de Azure IoT antes, consulte los pasos descritos en Limpieza de recursos para desinstalar operaciones de Azure IoT antes de continuar.

Use GitHub Codespaces para probar Operaciones de IoT de Azure en un clúster de Kubernetes sin instalar nada en la máquina local. El Azure-Samples/explore-iot-operations codespace está preconfigurado con:

  • K3s ejecutándose en K3d para un clúster ligero de Kubernetes.
  • CLI de Azure
  • Kubectl para administrar recursos de Kubernetes.
  • Otras herramientas útiles, como Helm y k9s.

Importante

Los codespaces son fáciles de configurar rápidamente y desmontar más adelante, pero no son adecuados para la evaluación del rendimiento ni para las pruebas de escalado. Use GitHub Codespaces solo con fines de exploración.

Para crear el codespace y el clúster, siga estos pasos:

  1. Cree un espacio de código en GitHub Codespaces.

    Creación de un espacio de código de operación explore-iot

  2. Proporcione los siguientes secretos recomendados para el espacio de código:

    Parámetro Valor
    SUBSCRIPTION_ID Su identificador de suscripción de Azure.
    RESOURCE_GROUP Un nombre para un nuevo grupo de recursos de Azure donde se creará el clúster.
    LOCATION Región de Azure cercana a usted. Las siguientes regiones se admiten en versión preliminar pública: eastus, eastus2, westus, westus2, westus3, westeurope o northeurope.

    Sugerencia

    Los valores que proporcione como secretos en este paso se guardan en la cuenta de GitHub que se usará en este y futuros espacios de código. También se agregan automáticamente como variables de entorno en el terminal de codespace y puede usar esas variables de entorno en los comandos de la CLI en la sección siguiente.

    Además, este codespace crea automáticamente una variable de entorno CLUSTER_NAME que se establece con el nombre del codespace.

  3. Seleccione Crear un codespace.

  4. Una vez que el codespace esté listo, seleccione el botón de menú de la parte superior izquierda y elija Abrir en VS Code Desktop.

    Apertura del escritorio de VS Code

  5. Si se le solicita, instale la extensiónGitHub Codespaces para Visual Studio Code e inicie sesión en GitHub.

  6. En Visual Studio Code, seleccione Ver>Terminal.

    Use este terminal para ejecutar todos los comandos de la línea de comandos y la CLI para administrar el clúster.

Para conectar el clúster a Azure Arc:

  1. En el terminal de codespace, inicie sesión en la CLI de Azure:

    az login
    

    Sugerencia

    Si usa el entorno de codespace de GitHub en un explorador en lugar del escritorio de VS Code, la ejecución de az login devuelve un error localhost. Para corregir el error, haga lo siguiente:

    • Abra el espacio de código en el escritorio de VS Code y vuelva al terminal del explorador y vuelva a ejecutar az login.
    • O bien, después de obtener el error localhost en el explorador, copie la dirección URL del explorador y ejecute curl "<URL>" en una nueva pestaña de terminal. Debería ver una respuesta JSON con el mensaje "Ha iniciado sesión en Microsoft Azure".
  2. Establezca el contexto de suscripción de Azure para todos los comandos:

    az account set -s $SUBSCRIPTION_ID
    
  3. Registre los proveedores de recursos necesarios en la suscripción:

    Nota:

    Este paso solo debe ejecutarse una vez por suscripción.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperationsOrchestrator"
    az provider register -n "Microsoft.IoTOperationsMQ"
    az provider register -n "Microsoft.IoTOperationsDataProcessor"
    az provider register -n "Microsoft.DeviceRegistry"
    
  4. Use el comando az group create para crear un grupo de recursos en la suscripción de Azure donde almacenar todos los recursos:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  5. Use el comando az connectedk8s connect para habilitar Arc el clúster de Kubernetes y administrarlo como parte del grupo de recursos de Azure:

    az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    

    Sugerencia

    El valor de $CLUSTER_NAME se establece automáticamente en el nombre del codespace. Reemplace la variable de entorno si desea usar un nombre diferente.

  6. Obtenga el objectId de la aplicación Microsoft Entra ID que usa el servicio Azure Arc y guárdelo como una variable de entorno.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. Use el comando az connectedk8s enable-features para habilitar la compatibilidad con una ubicación personalizada en el clúster. Este comando usa objectId de la aplicación de Microsoft Entra ID que el servicio Azure Arc utiliza.

    az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    

Comprobación del clúster

Use la extensión Operaciones de IoT de Azure para la CLI de Azure a fin de comprobar que el host del clúster está configurado correctamente para la implementación mediante el comando verify-host en el host del clúster:

az iot ops verify-host

Este comando auxiliar comprueba la conectividad a los puntos de conexión de Azure Resource Manager y Microsoft Container Registry.

Implementación de versión preliminar de Operaciones de IoT de Azure

En esta sección, usará el comando az iot ops init para configurar el clúster de modo que pueda comunicarse de forma segura con los componentes y el almacén de claves de Operaciones de IoT de Azure y después implementará Operaciones de IoT de Azure.

Ejecute los siguientes comandos de la CLI en el terminal Codespaces.

  1. Cree un almacén de claves. En este escenario, usaremos el mismo nombre y grupo de recursos que el clúster. Los nombres de keyvault tienen una longitud máxima de 24 caracteres, por lo que el siguiente comando trunca la CLUSTER_NAMEvariable de entorno si es necesario.

    az keyvault create --enable-rbac-authorization false --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP
    

    Sugerencia

    Puede usar un almacén de claves que ya existe para los secretos, pero compruebe que Modelo de permisos esté establecido en Directiva de acceso de Key Vault. Puede comprobar esta opción en la sección Configuración de acceso de Azure Portal de un almacén de claves. O bien, use el comando az keyvault show para comprobar que enableRbacAuthorization es false.

  2. Implementación de Operaciones de IoT de Azure.

    az iot ops init --simulate-plc --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --kv-id $(az keyvault show --name ${CLUSTER_NAME:0:24} -o tsv --query id)
    

    Si recibe un error que indica El dispositivo debe administrarse para acceder al recurso, vuelva a ejecutar az login y asegúrese de iniciar sesión interactivamente con un explorador.

    Sugerencia

    Si ejecutó az iot ops init anteriormente, se creó automáticamente un registro de aplicación en Microsoft Entra ID. Puede reutilizar ese registro en lugar de crear uno nuevo cada vez. Para usar un registro de aplicación existente, agregue el parámetro opcional --sp-app-id <APPLICATION_CLIENT_ID>.

Visualización de recursos en el clúster

Mientras la implementación está en curso, puede ver los recursos que se aplican al clúster. Puede usar comandos de kubectl para observar los cambios en el clúster, o bien, dado que el clúster está habilitado para Arc, puede usar Azure Portal.

Para ver los pods del clúster, ejecute el siguiente comando:

kubectl get pods -n azure-iot-operations

La implementación puede tardar varios minutos en completarse. Siga ejecutando el comando get pods para actualizar la vista.

Para ver el clúster en Azure Portal, siga estos pasos:

  1. En Azure Portal, vaya al grupo de recursos que contiene el clúster.

  2. En la sección Información general del grupo de recursos, seleccione el nombre del clúster.

  3. En el clúster, seleccione Extensiones en la sección Configuración del menú.

    Captura de pantalla que muestra las extensiones implementadas en el clúster habilitado para Arc.

    Puede ver que el clúster ejecuta extensiones del tipo microsoft.iotoperations.x, que es el nombre del grupo para todos los componentes de Operaciones de IoT de Azure y el servicio de orquestación. Estas extensiones tienen un sufijo único que identifica la implementación. En la captura de pantalla anterior, este sufijo es -z2ewy.

    También hay una extensión denominada akvsecretsprovider. Esta extensión es el proveedor de secretos que configuró e instaló en el clúster con el comando az iot ops init. Es posible que elimine y vuelva a instalar los componentes de Operaciones de IoT de Azure durante las pruebas, pero mantenga la extensión del proveedor de secretos en el clúster.

  4. Anote el nombre completo de la extensión denominada mq-.... Utilice este nombre en los siguientes inicios rápidos.

¿Cómo solucionamos el problema?

En esta guía de inicio rápido, ha configurado un clúster de Kubernetes habilitado para Arc para que pueda comunicarse de forma segura con los componentes de Operaciones de IoT de Azure. A continuación, ha implementado esos componentes en el clúster. En este escenario de prueba, tiene un único clúster de Kubernetes que probablemente se ejecute localmente en su máquina. Sin embargo, en un escenario de producción, puede usar los mismos pasos para implementar cargas de trabajo en muchos clústeres en muchos sitios.

Limpieza de recursos

Si va a continuar con la siguiente guía de inicio rápido, conserve todos los recursos.

Si quiere eliminar la implementación de Operaciones de IoT de Azure, pero tiene previsto volver a instalarlo en el clúster, asegúrese de mantener el proveedor de secretos en el clúster.

  1. En el grupo de recursos de Azure Portal, seleccione el clúster.

  2. En la página de recursos del clúster, seleccione Extensiones.

  3. Seleccione todas las extensiones de tipo microsoft.iotoperations.x y microsoft.deviceregistry.assetsy seleccione Desinstalar. No desinstale la extensión del proveedor de secretos.

    Captura de pantalla que muestra las extensiones que se van a desinstalar.

  4. Vuelva al grupo de recursos y seleccione el recurso de ubicación personalizada y, después, seleccione Eliminar.

Si quiere eliminar todos los recursos que creó para este inicio rápido, elimine el clúster de Kubernetes donde implementó Azure IoT Operations y quite el grupo de recursos de Azure que contenía el clúster.

Paso siguiente