Compartir vía


Implementación de extensiones de Operaciones de IoT de Azure (versión preliminar) en un clúster de Kubernetes

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.

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 implementadas las Operaciones de IoT de Azure, use el servicio en versión preliminar de Azure IoT Orchestrator para administrar e implementar otras cargas de trabajo en el clúster.

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 extensiones 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, se le pedirá que restrinja el acceso mediante condiciones al asignar roles de administrador con privilegios a un usuario o entidad de seguridad. 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.

  • Instancia de Azure Key Vault que tiene el Modelo de permisos establecido en Directiva de acceso de almacén. Puede comprobar esta configuración en la sección Configuración del acceso de un almacén de claves existente. En caso de necesitar crear un almacén de claves, utilice 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.46.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 ya ha implementado Operaciones de IoT de Azure en el clúster, 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. El uso de Ubuntu en el Subsistema de Windows para Linux (WSL) es la manera más sencilla de obtener un clúster de Kubernetes para realizar pruebas.

    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
    

Implementación de extensiones

Use la CLI de Azure para implementar los componentes de Operaciones de IoT de Azure en su clúster de Kubernetes habilitado para Arc.

  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>
    

    Importante

    De forma predeterminada, el comando az iot ops init no implementa el componente del procesador de datos. Para implementar el procesador de datos, agregue el argumento --include-dp.

    Si no tiene permisos de Microsoft.Authorization/roleAssignment/write en el grupo de recursos, agregue la marca de característica --disable-rsync-rules. Esta marca deshabilita las reglas de sincronización de recursos en la implementación.

    Si desea usar una entidad de servicio y un registro de aplicaciones existentes en lugar de permitir a init crear nuevos, incluya los parámetros --sp-app-id,--sp-object-id y --sp-secret. Para obtener más información, consulte Configuración de la entidad de servicio y Key Vault manualmente.

  3. Una vez completada la implementación, use az iot ops check para evaluar la implementación del servicio Operaciones de IoT 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.

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. Vuelva a ejecutar 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 el menú.

    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.

    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.

Sugerencia

Puede ejecutar az iot ops check para evaluar el estado y las configuraciones de las cargas de trabajo de AIO implementadas. De forma predeterminada, MQ, incluidos los conectores en la nube, se evalúan y puede especificar el servicio con --ops-service --svc.

Desinstalación de Operaciones de Azure IoT

Use el comando az iot ops delete para eliminar o desinstalar Operaciones de IoT de Azure desde 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 antes de ejecutarse.

El comando delete quita lo siguiente:

  • Extensiones de Operaciones de IoT de Azure.
  • Reglas de sincronización de recursos de Operaciones de IoT de Azure.
  • Recursos de Operaciones de IoT de Azure.
  • Ubicación personalizada asociada.
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).