Compartir por


Implementación de Azure IoT Operations Preview 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.

Tendrá que implementar una nueva instalación de operaciones de Azure IoT cuando esté disponible una versión disponible con carácter general; no podrá actualizar una instalación en versión preliminar.

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.

Implementación de la versión preliminar de Operaciones de IoT de Azure en un clúster de Kubernetes mediante la CLI de Azure. Una vez que haya implementado Azure IoT Operations, puede administrar e implementar otras cargas de trabajo en el clúster.

  • Una implementación de Azure IoT Operations describe todos los componentes y recursos que permiten el escenario de operaciones de Azure IoT. Estos componentes y recursos incluyen:

    • Una instancia de Azure IoT Operations
    • Extensiones de Arc
    • Ubicaciones personalizadas
    • Reglas de sincronización de recursos
    • Recursos que puede configurar en la solución de operaciones de Azure IoT, como recursos, agente MQTT y flujos de datos.
  • Una instancia de Azure IoT Operations es una parte de una implementación. Es el recurso primario que agrupa el conjunto de servicios que se definen en ¿Qué es Azure IoT Operations Preview?, como MQ, Akri y conector OPC UA.

En este artículo, cuando hablamos de la implementación de operaciones de Azure IoT, significamos el conjunto completo de componentes que componen una implementación. Una vez que exista la implementación, puede ver, administrar y actualizar la instancia.

Requisitos previos

Recursos en la nube:

  • Suscripción a Azure.

  • Permisos de acceso de Azure. Como mínimo, tenga permisos de colaborador en su suscripción de Azure. En función del estado de la marca de la característica de implementación que seleccione, es posible que también necesite permisos de Microsoft/Authorization/roleAssignments/write para el grupo de recursos que contenga el clúster de Kubernetes habilitado para Arc. Es posible crear un rol personalizado en el control de acceso basado en roles de Azure o asignar un rol integrado que conceda este permiso. Para obtener más información, consulte Roles integrados de Azure para General.

    Si no tuviera permisos de escritura de asignación de roles, todavía podría implementar Operaciones de IoT de Azure deshabilitando algunas características. Este enfoque se describe con más detalle en la sección Implementación de este artículo.

    • En la CLI de Azure, use el comando az role assignment create para conceder permisos. Por ejemplo: az role assignment create --assignee sp_name --role "Role Based Access Control Administrator" --scope subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup

    • En Azure Portal, al asignar roles de administrador con privilegios a un usuario o entidad de seguridad, puede restringir el acceso mediante condiciones. En este escenario, seleccione la condición Permitir al usuario asignar todos los roles en la página Agregar asignación de roles.

      Captura de pantalla que muestra la asignación de acceso de roles con privilegios elevados a los usuarios en Azure Portal.

  • Almacén de claves de Azure que tiene el Modelo de permisos establecido en Directiva de acceso de Vault. Puede comprobar esta configuración en la sección Configuración del acceso de un almacén de claves existente. Para crear un nuevo almacén de claves, use el comando az keyvault create :

    az keyvault create --enable-rbac-authorization false --name "<KEYVAULT_NAME>" --resource-group "<RESOURCE_GROUP>"
    

Recursos de desarrollo:

  • CLI de Azure instalada en la máquina de desarrollo. Para obtener más información, consulte Cómo instalar la CLI de Azure. Este escenario requiere la versión 2.53.0 o posterior de la CLI de Azure. Use az --version para comprobar la versión y az upgrade para actualizarla si es necesario.

  • Extensión Operaciones de IoT de Azure para la CLI de Azure. Use el siguiente comando para agregar la extensión o actualizarla a la versión más reciente:

    az extension add --upgrade --name azure-iot-ops
    

Un host de clúster:

  • Un clúster de Kubernetes habilitado para Azure Arc. Si no dispone de uno, siga los pasos indicados en Preparación de su clúster Kubernetes habilitado para Azure Arc.

    Si ha implementado Operaciones de Azure IoT en el clúster anteriormente, desinstale esos recursos antes de continuar. Para más información, consulte Actualización de Operaciones de IoT de Azure.

    Operaciones de IoT de Azure debería funcionar en cualquier clúster de kubernetes compatible con CNCF. Actualmente, Microsoft solo admite K3s en Ubuntu Linux y WSL, o AKS Edge Essentials en Windows.

    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
    

Implementar

Use Azure Portal o la CLI de Azure para implementar operaciones de Azure IoT en el clúster de Kubernetes habilitado para Arc.

La experiencia de implementación de Azure Portal es una herramienta auxiliar que genera un comando de implementación basado en los recursos y la configuración. El último paso es ejecutar un comando de la CLI de Azure, por lo que todavía necesita los requisitos previos de la CLI de Azure descritos en la sección anterior.

  1. Inicie sesión en la CLI de Azure de forma interactiva con un explorador aunque ya haya iniciado sesión antes. Si no inicia sesión de forma interactiva, es posible que se produzca un error indicando que Es necesario que el dispositivo se administre para acceder al recurso al continuar con el paso siguiente para implementar Operaciones de IoT de Azure.

    az login
    

    Nota:

    Si usa GitHub Codespaces en un explorador, az login devuelve un error localhost en la ventana del explorador después de iniciar sesión. Para solucionarlo, use una de las siguientes opciones:

    • Abra el espacio de código en el escritorio de VS Code y ejecute az login en el terminal. Se abrirá una ventana del explorador en la que puede iniciar sesión en Azure.
    • O bien, después de que se produzca el error de localhost en el explorador, copie la dirección URL del explorador y use curl <URL> en una nueva pestaña del terminal. Debería ver una respuesta JSON con el mensaje "Ha iniciado sesión en Microsoft Azure".
  2. Implemente Operaciones de IoT de Azure en el clúster. Use marcas opcionales para personalizar el comando az iot ops init para que se ajuste a su escenario.

    De forma predeterminada, el comando az iot ops init realiza las siguientes acciones, algunas de las cuales requieren que la entidad de seguridad conectada a la CLI tenga permisos elevados:

    • Configure una entidad de servicio y un registro de aplicación para conceder al clúster acceso al almacén de claves.
    • Configuración de certificados TLS.
    • Configure un almacén de secretos en el clúster que se conecte al almacén de claves.
    • Implementación de recursos de Operaciones de IoT de Azure.
    az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --kv-id <KEYVAULT_SETTINGS_PROPERTIES_RESOURCE_ID>
    

    Use los parámetros opcionales para personalizar la implementación, incluidos:

    Parámetro Valor Descripción
    --add-insecure-listener Agregue una configuración de puerto 1883 no segura al agente de escucha predeterminado. No para uso de producción.
    --broker-config-file Ruta de acceso al archivo JSON Proporcione un archivo de configuración para el agente MQTT. Para obtener más información, vea Configuración avanzada del agente MQTT y Configuración de la configuración básica del agente MQTT.
    --disable-rsync-rules Deshabilite las reglas de sincronización de recursos en la marca de característica de implementación si no tiene permisos de Microsoft.Authorization/roleAssignment/write en el grupo de recursos.
    --name Cadena Proporcione un nombre para la instancia de Azure IoT Operations. De lo contrario, se asigna un nombre predeterminado. Puede ver el parámetro instanceName en la salida del comando.
    --no-progress Deshabilita la presentación del progreso de la implementación en el terminal.
    --simulate-plc Incluya el simulador de OPC PLC que se incluye con el conector de OPC UA.
    --sp-app-id,
    --sp-object-id,
    --sp-secret
    Identificador de aplicación de entidad de servicio, identificador de objeto de entidad de servicio y secreto de entidad de servicio Incluya todos o algunos de estos parámetros para usar una entidad de servicio, un registro de aplicación y un secreto existentes en lugar de permitir que init crear nuevos. Para obtener más información, consulte Configuración de la entidad de servicio y Key Vault manualmente.

Mientras la implementación está en curso, puede ver los recursos que se aplican al clúster.

  • Si el terminal lo admite, init muestra el progreso de la implementación.

    Captura de pantalla que muestra el progreso de una implementación de Azure IoT Operations en un terminal.

    Una vez que comienza la fase Implementación de operaciones de IoT, el texto del terminal se convierte en un vínculo para ver el progreso de la implementación en Azure Portal.

    Captura de pantalla que muestra el progreso de una implementación de Azure IoT Operations en Azure Portal.

  • De lo contrario, o si decide deshabilitar la interfaz de progreso con --no-progress agregado al comando init, puede usar comandos kubectl para ver los pods del clúster:

    kubectl get pods -n azure-iot-operations
    

    La implementación puede tardar varios minutos en completarse. Vuelva a ejecutar el comando get pods para actualizar la vista.

Una vez completada la implementación, use az iot ops check para evaluar la implementación del servicio IoT Operations para el estado, la configuración y la facilidad de uso. El comando comprobar puede ayudarle a encontrar problemas en la implementación y configuración.

az iot ops check

Compruebe también las configuraciones de asignaciones de temas, QoS y rutas de mensajes agregando el parámetro --detail-level 2 para obtener una vista detallada.

Administración de operaciones de Azure IoT

Después de la implementación, puede usar la CLI de Azure y Azure Portal para ver y administrar la instancia de Azure IoT Operations.

Enumerar instancias.

Use el comando az iot ops list para ver todas las instancias de Azure IoT Operations en su suscripción o grupo de recursos.

El comando básico devuelve todas las instancias de la suscripción.

az iot ops list

Para filtrar los resultados por grupo de recursos, agregue el parámetro --resource-group.

az iot ops list --resource-group <RESOURCE_GROUP>

Visualización de la instancia

Use el comando az iot ops show para ver las propiedades de una instancia.

az iot ops show --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP>

También puede usar el comando az iot ops show para ver los recursos de la implementación de Azure IoT Operations en la CLI de Azure. Agregue la marca --tree para mostrar una vista de árbol de la implementación que incluye la instancia de Azure IoT Operations especificada.

az iot ops show --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --tree

La vista de árbol de una implementación tiene el siguiente aspecto:

MyCluster
├── extensions
│   ├── akvsecretsprovider
│   ├── azure-iot-operations-ltwgs
│   └── azure-iot-operations-platform-ltwgs
└── customLocations
    └── MyCluster-cl
        ├── resourceSyncRules
        └── resources
            ├── MyCluster-ops-init-instance
            └── MyCluster-observability

Puede ejecutar az iot ops check en el clúster para evaluar el estado y las configuraciones de los componentes individuales de Azure IoT Operations. De forma predeterminada, el comando comprueba MQ, pero puede especificar el servicio con --ops-service el parámetro.

Actualización de etiquetas de instancia y descripción

Use el comando az iot ops update para editar las etiquetas y los parámetros de descripción de la instancia de Azure IoT Operations. Los valores proporcionados en el comando update reemplazan las etiquetas o la descripción existentes

az iot ops update --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --desc "<INSTANCE_DESCRIPTION>" --tags <TAG_NAME>=<TAG-VALUE> <TAG_NAME>=<TAG-VALUE>

Para eliminar todas las etiquetas de una instancia, establezca el parámetro tags en un valor NULL. Por ejemplo:

az iot ops update --name <INSTANCE_NAME> --resource-group --tags ""

Desinstalación de Operaciones de Azure IoT

La CLI de Azure y Azure Portal ofrecen diferentes opciones para desinstalar operaciones de Azure IoT.

Si desea eliminar toda una implementación de Azure IoT Operations, use la CLI de Azure.

Si desea eliminar una instancia de Azure IoT Operations, pero mantener los recursos relacionados en la implementación, use Azure Portal.

Use el comando az iot ops delete para eliminar toda la implementación de operaciones de Azure IoT de un clúster. El comando delete evalúa los recursos relacionados con Operaciones de IoT de Azure en el clúster y presenta una vista de árbol de los recursos que se van a eliminar. El clúster debe estar en línea al ejecutar este comando.

El comando delete quita lo siguiente:

  • Instancia de Azure IoT Operations
  • Extensiones de Arc
  • Ubicaciones personalizadas
  • Reglas de sincronización de recursos
  • Recursos que puede configurar en la solución de operaciones de Azure IoT, como recursos, agente MQTT y flujos de datos.
az iot ops delete --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>

Actualización de Operaciones de IoT de Azure

Actualmente no se admite la actualización de implementaciones de Operaciones de IoT de Azure existentes. En su lugar, desinstale y vuelva a implementar una nueva versión de Operaciones de IoT de Azure.

  1. Use el comando az iot ops delete para eliminar la implementación de Operaciones de IoT de Azure en el clúster.

    az iot ops delete --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>
    
  2. Actualice la extensión de la CLI para obtener la versión más reciente de Operaciones de IoT de Azure.

    az extension update --name azure-iot-ops
    
  3. Siga los pasos de este artículo para implementar la versión más reciente de Operaciones de IoT de Azure en el clúster.

    Sugerencia

    Agregue la marca --ensure-latest al comando az iot ops init para comprobar que está instalada la versión más reciente de la CLI de Operaciones de IoT de Azure y generar un error si hay disponible una actualización.

Pasos siguientes

Si los componentes necesitan conectarse a puntos de conexión de Azure como SQL o Fabric, aprenda a Administrar secretos para la implementación de Operaciones de IoT de Azure (versión preliminar).