Share via


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 Actualizar una implementación.

    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_ID>
    

    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.

Actualizar una implementación

Actualmente no se admite la actualización de implementaciones de Operaciones de IoT de Azure existentes. En su lugar, comience con un clúster limpio para una nueva implementación.

Si desea eliminar la implementación de Operaciones de IoT de Azure en el clúster para que pueda volver a implementarlo, vaya al clúster en Azure Portal. Seleccione las extensiones del tipo microsoft.iotoperations.x y microsoft.deviceregistry.assets y elija Desinstalar. Mantenga el proveedor de secretos en el clúster, ya que es un requisito previo para la implementación y no se incluye en una implementación nueva.

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).