Actualización de IoT Edge

Se aplica a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

IoT Edge 1.4 es la versión admitida. Si está usando una versión anterior, consulte Actualización de IoT Edge.

Dado que el servicio de IoT Edge lanza versiones nuevas, actualice los dispositivos de IoT Edge para tener las últimas características y mejoras de seguridad. En este artículo se proporciona información sobre cómo actualizar los dispositivos IoT Edge cuando hay una versión nueva disponible.

Es necesario actualizar dos componentes lógicos de un dispositivo IoT Edge si quiere pasar a una versión más reciente.

  • Subsistema de seguridad: aunque la arquitectura del subsistema de seguridad cambió entre la versión 1.1 y la 1.2, sus responsabilidades siguen siendo las mismas. Se ejecuta en el dispositivo, controla las tareas basadas en seguridad e inicia los módulos cuando se inicia el dispositivo. El subsistema de seguridad solo se puede actualizar desde el propio dispositivo.

  • Entorno de ejecución de IoT Edge: el entorno de ejecución de IoT Edge se compone de los módulos del centro de IoT Edge (edgeHub) y del agente de IoT Edge (edgeAgent). Dependiendo de cómo estructura la implementación, el entorno de ejecución se puede actualizar desde el dispositivo o de forma remota.

Cómo actualizar

Use las secciones de este artículo para actualizar tanto el subsistema de seguridad como los contenedores en tiempo de ejecución en un dispositivo.

Versiones de revisión

Al actualizar entre versiones de revisión , por ejemplo, 1.4.1 a 1.4.2, el orden de actualización no es importante. Puede actualizar el subsistema de seguridad o los contenedores en tiempo de ejecución antes o después del otro. Para actualizar entre versiones de revisión:

  1. Actualización del subsistema de seguridad
  2. Actualización de los contenedores en tiempo de ejecución
  3. Comprobación de la coincidencia de versiones

Puede solucionar problemas del proceso de actualización en cualquier momento.

Versiones principales o secundarias

Al actualizar entre versiones principales o secundarias, por ejemplo, de 1.1 a 1.4, actualice tanto el subsistema de seguridad como los contenedores en tiempo de ejecución. Antes de una versión, se prueba el subsistema de seguridad y la combinación de versión del contenedor en tiempo de ejecución. Para actualizar entre las versiones principales o secundarias del producto:

  1. En el dispositivo, detenga IoT Edge con el comando sudo systemctl stop iotedge y desinstale.

  2. En el dispositivo, actualice el motor de contenedor, ya sea Docker o Moby.

  3. En el dispositivo, instale IoT Edge.

    Si va a importar una configuración antigua mediante iotedge config import, modifique la imagen [agent.config] del archivo generado /etc/aziot/config.toml para usar la imagen 1.4 para edgeAgent.

    Para obtener más información, consulte Configuración de la configuración del dispositivo IoT Edge.

  4. En IoT Hub, actualice la implementación del módulo para hacer referencia a los módulos del sistema más recientes.

  5. En el dispositivo, inicie IoT Edge mediante sudo iotedge config apply.

Puede solucionar problemas del proceso de actualización en cualquier momento.

Actualización del subsistema de seguridad

El subsistema de seguridad de IoT Edge incluye un conjunto de componentes nativos que deben actualizarse mediante el administrador de paquetes en el dispositivo IoT Edge.

Compruebe la versión del subsistema de seguridad que se ejecuta en el dispositivo mediante el comando iotedge version. Si usa IoT Edge para Linux en Windows, debe conectarse mediante SSH a la máquina virtual Linux para comprobar la versión.

Importante

Si va a actualizar un dispositivo de la versión 1.0 o 1.1 a la versión más reciente, existen diferencias en los procesos de instalación y configuración que requieren pasos adicionales. Para obtener más información, consulte los pasos que se indican más adelante en este artículo: Caso especial: Actualización de la versión 1.0 o 1.1 a la versión más reciente.

En dispositivos Linux x64, use apt-get o el administrador de paquetes adecuado para actualizar el subsistema de seguridad a la versión más reciente.

Actualice apt:

sudo apt-get update

Nota:

Para obtener instrucciones para obtener la configuración del repositorio más reciente de Microsoft, vea los pasos preliminares para la Instalación de IoT Edge.

Compruebe qué versiones de IoT Edge están disponibles:

apt list -a aziot-edge

Actualización de IoT Edge:

sudo apt-get install aziot-edge defender-iot-micro-agent-edge

La ejecución apt-get install aziot-edge de actualiza el subsistema de seguridad e instala el servicio de identidad, aziot-identity-service, como dependencia necesaria.

Se recomienda instalar el microagente con el agente de Edge para habilitar la supervisión de seguridad y la protección de los dispositivos de Edge. Para obtener más información sobre Microsoft Defender para IoT, consulte ¿Qué es Microsoft Defender para IoT para generadores de dispositivos?.

A continuación, vuelva a aplicar la configuración para asegurarse de que el sistema está totalmente actualizado.

sudo iotedge config apply

Actualización de los contenedores del entorno de ejecución

El modo de actualizar los contenedores del centro de IoT Edge y del agente de IoT Edge depende de si usa etiquetas graduales (por ejemplo, 1.1) o etiquetas específicas (por ejemplo, 1.1.1) en la implementación.

Compruebe la versión de los módulos Agente de IoT Edge y Centro de IoT Edge instalada actualmente en el dispositivo mediante los comandos iotedge logs edgeAgent o iotedge logs edgeHub. Si usa IoT Edge para Linux en Windows, debe conectarse mediante SSH a la máquina virtual Linux para comprobar las versiones del módulo de runtime.

Screenshot of where to find the container version in console logs.

Información sobre las etiquetas de IoT Edge

Las imágenes del Agente de IoT Edge y del centro de IoT Edge se etiquetan con la versión de IoT Edge a la que están asociadas. Hay dos maneras diferentes de usar etiquetas con las imágenes del entorno de ejecución:

  • Etiquetas graduales: use solo los dos primeros valores del número de versión para obtener la imagen más reciente que coincida con esos dígitos. Por ejemplo, 1.1 se actualiza cada vez que hay una nueva versión para que apunte a la versión 1.1.x más reciente. Si el entorno de ejecución del contenedor en el dispositivo IoT Edge extrae la imagen de nuevo, se actualizan los módulos del entorno de ejecución a la versión más reciente. Las implementaciones de Azure Portal tienen como valor predeterminado las etiquetas graduales. Este enfoque se recomienda para fines de desarrollo.

  • Etiquetas específicas: use los tres valores del número de versión para establecer explícitamente la versión de la imagen. Por ejemplo, la versión 1.1.0 no cambiará después de su lanzamiento inicial. Puede declarar un nuevo número de versión del manifiesto de implementación cuando esté listo para actualizar. Este enfoque se recomienda para fines de producción.

Actualización de una imagen de etiqueta gradual

Si usa etiquetas graduales en la implementación (por ejemplo, mcr.microsoft.com/azureiotedge-hub:1.1), deberá forzar el entorno de ejecución del contenedor en el dispositivo para extraer la versión más reciente de la imagen.

Elimine la versión local de la imagen del dispositivo IoT Edge. En equipos con Windows, al desinstalar el subsistema de seguridad también se quitan las imágenes en tiempo de ejecución, por lo que no es necesario volver a realizar este paso.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Es posible que tenga que usar la marca -f de fuerza para eliminar las imágenes.

El servicio IoT Edge extrae las versiones más recientes de las imágenes en tiempo de ejecución y las inicia automáticamente en el dispositivo de nuevo.

Actualización de una etiqueta específica

Si usa etiquetas específicas en la implementación (por ejemplo, mcr.microsoft.com/azureiotedge-hub:1.4), todo lo que debe hacer es actualizar la etiqueta en el manifiesto de implementación y aplicar los cambios en el dispositivo.

  1. En IoT Hub en Azure Portal, seleccione el dispositivo IoT Edge y luego Establecer módulos.

  2. En la pestaña Módulos, seleccione Runtime Configuración.

    Screenshot that shows location of the Runtime Settings tab.

  3. En Tiempo de ejecución Configuración, actualice el valor de URI de imagen en la sección Agente perimetral con la versión deseada. No seleccione Aplicar aún.

    Screenshot that shows where to update the image URI with your version in the Edge Agent.

  4. Seleccione la pestaña Centro de Edge y actualice el valor de URI de imagen con la misma versión deseada.

    Screenshot that shows where to update the image URI with your version in the Edge Hub.

  5. Seleccione Aplicar para guardar los cambios.

  6. Seleccione Revisar y crear, revise la implementación como se muestra en el archivo JSON y seleccione Crear.

Comprobar que las versiones coincidan

  1. En el dispositivo, use iotedge version para comprobar la versión del subsistema de seguridad. La salida incluye los números de versión principal, secundaria y de revisión. Por ejemplo, iotedge 1.4.2.

  2. En la configuración del entorno de ejecución de implementación de dispositivos, compruebe que las versiones de URI de imagen edgeHub y edgeAgent coinciden con la versión principal y secundaria del subsistema de seguridad. Si la versión del subsistema de seguridad es 1.4.2, las versiones de imagen serían 1.4. Por ejemplo, mcr.microsoft.com/azureiotedge-hub:1.4 y mcr.microsoft.com/azureiotedge-agent:1.4.

Nota:

Actualice el subsistema de seguridad de IoT Edge y los contenedores en tiempo de ejecución a la misma versión de versión compatible. Aunque se admiten versiones no coincidentes, no se han probado todas las combinaciones de versiones.

Para obtener la versión más reciente de Azure IoT Edge, consulte Versiones de Azure IoT Edge.

Caso especial: actualización de 1.0 o 1.1 a la versión más reciente

A partir de la versión 1.2, el servicio IoT Edge usa un nombre de paquete nuevo y tiene algunas diferencias en los procesos de instalación y configuración. Si dispone de un dispositivo IoT Edge que ejecuta la versión 1.0 o 1.1, siga estas instrucciones para obtener información sobre cómo actualizar a la versión más reciente.

Algunas de las principales diferencias entre la versión más reciente y la versión 1.1 y anteriores incluyen:

  • El nombre del paquete ha cambiado de iotedge a aziot-edge.
  • El paquete libiothsm-std ya no se usa. Si usó el paquete estándar proporcionado como parte de la versión de IoT Edge, las configuraciones se pueden transferir a la nueva versión. Si usó una implementación diferente de libiothsm-std, es necesario volver a configurar cualquier certificado proporcionado por el usuario, como el certificado de identidad del dispositivo, la ENTIDAD de certificación del dispositivo y el conjunto de confianza.
  • Un nuevo servicio de identidad, aziot-identity-service, se introdujo como parte de la versión 1.2. Este servicio controla el aprovisionamiento y la administración de identidades para IoT Edge y otros componentes de dispositivo que necesitan comunicarse con IoT Hub, como la actualización de dispositivos para IoT Hub.
  • El archivo de configuración predeterminado tiene un nombre y una ubicación nuevos. La información de configuración de dispositivo que anteriormente se encontraba en /etc/iotedge/config.yaml, ahora se espera que esté en /etc/aziot/config.toml de manera predeterminada. El comando iotedge config import se puede usar para ayudar a migrar la información de configuración de la ubicación y la sintaxis anteriores a las nuevas.
    • El comando de importación no puede detectar ni modificar las reglas de acceso al módulo de plataforma segura (TPM) de un dispositivo. Si el dispositivo usa la atestación de TPM, debe actualizar manualmente el archivo /etc/udev/rules.d/tpmaccess.rules para proporcionar acceso al servicio aziottpm. Para más información, vea Concesión a IoT Edge el acceso a TPM.
  • La API de carga de trabajo de la versión más reciente guarda los secretos cifrados en un nuevo formato. Si actualiza de una versión anterior a la versión más reciente, se importa la clave de cifrado maestra existente. La API de carga de trabajo puede leer los secretos guardados en el formato anterior mediante la clave de cifrado importada. Sin embargo, la API de carga de trabajo no puede escribir secretos cifrados en el formato anterior. Una vez que un módulo vuelve a cifrar un secreto, se guarda en el nuevo formato. El mismo módulo de la versión 1.1 no puede leer los secretos cifrados en la versión más reciente. Si conserva los datos cifrados en una carpeta o volumen montados en host, cree siempre una copia de seguridad de los datos antes de la actualización para conservar la capacidad de cambiar a una versión anterior, si es necesario.
  • Por compatibilidad con versiones anteriores al conectar dispositivos que no admiten TLS 1.2, puede configurar Edge Hub para que siga aceptando TLS 1.0 o 1.1 a través de la variable de entorno SslProtocols. La compatibilidad con TLS 1.0 y 1.1 en IoT Hub se considera heredada y también se puede quitar de Edge Hub en futuras versiones.  Para evitar problemas en el futuro, use TLS 1.2 como la única versión de TLS al conectarse a Edge Hub o IoT Hub.
  • La versión preliminar del agente de MQTT experimental en Edge Hub 1.2 ha finalizado y no se incluye en Edge Hub 1.4. Seguimos perfeccionando nuestros planes para un agente de MQTT en función de los comentarios recibidos. Mientras tanto, si necesita un agente MQTT compatible con estándares en IoT Edge, considere la posibilidad de implementar un agente de código abierto (Mosquitto, por ejemplo) como un módulo de IoT Edge.
  • A partir de la versión 1.2, cuando se quita una imagen de respaldo de un contenedor, este continúa ejecutándose y se mantiene entre reinicios. En la versión 1.1, cuando se quita una imagen de respaldo, el contenedor se vuelve a crear inmediatamente y se actualiza la imagen de respaldo.

Antes de automatizar los procesos de actualización, compruebe que funciona en máquinas de prueba.

Cuando esté listo, siga estos pasos para actualizar IoT Edge en los dispositivos:

  1. Actualice apt.

    sudo apt-get update
    
  2. Desinstale la versión anterior de IoT Edge, manteniendo los archivos de configuración en su lugar.

    sudo apt-get remove iotedge
    
  3. Instale la versión más reciente de IoT Edge, junto con el servicio de identidad de IoT y el microagente de Microsoft Defender para IoT para Edge.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Se recomienda instalar el microagente con el agente de Edge para habilitar la supervisión de seguridad y la protección de los dispositivos de Edge. Para obtener más información sobre Microsoft Defender para IoT, consulte ¿Qué es Microsoft Defender para IoT para generadores de dispositivos?.

  1. Importe el archivo config.yaml antiguo a su nuevo formato y aplique la información de configuración.

    sudo iotedge config import
    

Ahora que el servicio IoT Edge más reciente se ejecuta en los dispositivos, también debe actualizar los contenedores en tiempo de ejecución a la versión más reciente. El proceso de actualización de contenedores en tiempo de ejecución es el mismo que el proceso de actualización del servicio IoT Edge.

Solucionar problemas

Puede ver los registros del sistema en cualquier momento ejecutando los siguientes comandos desde el dispositivo.

  • Empiece a solucionar problemas mediante el comando check . Ejecuta una colección de pruebas de configuración y conectividad para problemas comunes.

    sudo iotedge check --verbose
    
  • Para ver el estado del sistema IoT Edge, ejecute:

    sudo iotedge system status 
    
  • Para ver los registros de componentes de host, ejecute:

    sudo iotedge system logs
    
  • Para comprobar si hay problemas periódicos notificados con edgeAgent y edgeHub, ejecute:

    Asegúrese de reemplazar <module> por su propio nombre de módulo. Si no hay ningún problema, no verá ninguna salida.

    sudo iotedge logs <module>
    

Para más información, consulte Solución de problemas del dispositivo IoT Edge.

Pasos siguientes

Consulte las últimas versiones de Azure IoT Edge.

Permanezca actualizado con los anuncios y las actualizaciones recientes del blog de Internet de las cosas.