Поделиться через


Обновление IoT Edge

Применимо к:значок IoT Edge 1.1

Это важно

Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г.. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в статье Update IoT Edge.

Поскольку служба IoT Edge выпускает новые версии, вы хотите обновить устройства IoT Edge для последних функций и улучшений безопасности. В этой статье представлены сведения об обновлении устройств IoT Edge при наличии новой версии.

Если вы хотите перейти к новой версии, необходимо обновить два логических компонента устройства IoT Edge. Первым является подсистема безопасности. Хотя архитектура подсистемы безопасности изменилась между версией 1.1 и 1.2, ее общие обязанности остались неизменными. Он запускается на устройстве, обрабатывает задачи на основе безопасности и запускает модули при запуске устройства. В настоящее время подсистема безопасности может обновляться только с самого устройства. Второй компонент — это среда выполнения, состоящий из модулей центра IoT Edge и агента IoT Edge. В зависимости от того, как вы структурируете развертывание, среду выполнения можно обновить с устройства или удаленно.

Необходимо обновить среду выполнения IoT Edge и уровни приложений, используя ту же версию выпуска. Хотя поддерживаются несовпадные версии, они не тестируются вместе. Используйте следующие разделы в этой статье, чтобы обновить уровни среды выполнения и приложения на устройстве:

  1. Обновление подсистемы безопасности
  2. Обновление контейнеров среды выполнения
  3. Проверка соответствия версий
    • На устройстве используйте iotedge version для проверки версии подсистемы безопасности. Выходные данные включают основные, дополнительные и промежуточные номера версий. Например, iotedge 1.4.2.
    • В параметрах среды выполнения развертывания вашего устройства убедитесь, что версии URI образов edgehub и edgeagent соответствуют основной и дополнительной версиям подсистемы безопасности. Если версия подсистемы безопасности — 1.4.2, версии образа будут иметь значение 1.4. Например, mcr.microsoft.com/azureiotedge-hub:1.4 и mcr.microsoft.com/azureiotedge-agent:1.4.

Чтобы найти последнюю версию Azure IoT Edge, смотрите выпуски Azure IoT Edge.

Обновление подсистемы безопасности

Подсистема безопасности IoT Edge включает набор собственных компонентов, которые необходимо обновить с помощью диспетчера пакетов на устройстве IoT Edge.

Проверьте версию подсистемы безопасности, запущенной на устройстве, с помощью команды iotedge version. Если вы используете IoT Edge для Linux в Windows, вам потребуется SSH-подключение к виртуальной машине Linux для проверки версии.

Это важно

Если устройство обновляется с версии 1.0 или 1.1 до последнего выпуска, существуют различия в процессах установки и конфигурации, требующих дополнительных шагов. Дополнительные сведения см. в шагах ниже в этой статье: Особый случай: обновление с версии 1.0 или 1.1 до последней версии.

На устройствах Linux x64 используйте apt-get или соответствующий диспетчер пакетов для обновления модуля среды выполнения до последней версии.

Обновите apt.

sudo apt-get update

Примечание.

Инструкции по получению последней конфигурации репозитория от Майкрософт см. в предварительных шагах по установке IoT Edge.

Проверьте, какие версии IoT Edge доступны.

apt list -a iotedge

Если вы хотите обновить последнюю версию модуля среды выполнения, используйте следующую команду, которая также обновляет libiothsm-std до последней версии:

sudo apt-get install iotedge

Если вы хотите обновить до определенной версии модуля среды выполнения, укажите версию из выходных данных списка apt. При обновлении iotedge автоматически пытается обновить пакет libiothsm-std до последней версии, что может вызвать конфликт зависимостей. Если вы не переходите на последнюю версию, убедитесь, что оба пакета предназначены для одной и той же версии. Например, следующая команда устанавливает определенную версию выпуска 1.1:

sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1

Если версия, которую требуется установить, недоступна через apt-get, можно использовать curl для назначения любой версии из выпусков IoT Edge репозитория. Чтобы установить нужную версию, найдите соответствующие файлы libiothsm-std и iotedge для вашего устройства. Для каждого файла щелкните правой кнопкой мыши ссылку на файл и скопируйте адрес ссылки. Используйте адрес ссылки для установки определенных версий этих компонентов:

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo apt-get install ./iotedge.deb

Затем повторно примените конфигурацию, чтобы убедиться, что система полностью обновлена.

sudo iotedge config apply

Обновление контейнеров среды выполнения

Способ обновления агента IoT Edge и контейнеров Центра IoT Edge зависит от того, используются ли в развертывании скользящие теги (например, 1.1) или определенные теги (например, 1.1.1).

Проверьте версию модулей агента и центра IoT Edge, используемую в настоящее время на вашем устройстве, с помощью команды iotedge logs edgeAgent или iotedge logs edgeHub. Если вы используете IoT Edge для Linux в Windows, вам потребуется SSH-подключение к виртуальной машине Linux для проверки версии модуля среды выполнения.

Найти версию контейнера в журналах

Понимание тегов IoT Edge

Образы агента IoT Edge и узла IoT Edge помечены версией IoT Edge, с которой они связаны. Существует два способа использования тегов с образами среды выполнения:

  • Последовательные теги: используются только первые два значения номера версии для получения последнего образа, соответствующего этим цифрам. Например, 1.1 обновляется всякий раз, когда появляется новый выпуск, указывающий на последнюю версию 1.1.x. Если среда выполнения контейнера на устройстве IoT Edge снова извлекает образ, модули среды выполнения обновляются до последней версии. Развертывания с портала Azure по умолчанию выполняются с использованием поэтапных тегов. Этот подход предлагается для целей разработки.

  • Конкретные теги: используются все три значения номера версии для явной установки версии образа. Например, 1.1.0 не изменится после первоначального выпуска. Вы можете объявить новый номер версии в манифесте развертывания, когда будете готовы к обновлению. Этот подход предлагается для производственных целей.

Обновление образа скользящего тега

Если в развертывании используются скользящие теги (например, mcr.microsoft.com/azureiotedge-hub:1.1), необходимо принудить среду выполнения контейнера на вашем устройстве загрузить последнюю версию образа.

Удалите локальную версию образа с устройства IoT Edge. На компьютерах Windows удаление подсистемы безопасности также удаляет образы среды выполнения, поэтому вам не нужно снова выполнять этот шаг.

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

Для удаления образов может потребоваться использовать флаг force -f.

Служба IoT Edge извлекает последние версии образов среды выполнения и автоматически запускает их на устройстве снова.

Обновление образа конкретного тега

Если в развертывании используются определенные теги (например, mcr.microsoft.com/azureiotedge-hub:1.1.1), то все, что необходимо сделать, — обновить тег в манифесте развертывания и применить изменения к устройству.

  1. В центре Интернета вещей на портале Microsoft Azure выберите свое устройство IoT Edge и нажмите Set Modules (Настройка модулей).

  2. В разделе модулей IoT Edge выберите параметры среды выполнения.

    Настройка параметров среды выполнения

  3. В параметрах среды выполненияобновите значение образа для Edge Hub с требуемой версией. Пока не выберите Сохранить.

    обновление версии образа Edge Hub

  4. Сверните параметры Edge Hub или прокрутите вниз, и обновите значение образа для Edge Agent на ту же требуемую версию.

    обновление версии агента Edge Hub

  5. Выберите Сохранить.

  6. Выберите Обзор и создание, проверьте развертывание и выберите Создать.

Особый случай: обновление с версии 1.0 или 1.1 до последней версии

Начиная с версии 1.2 служба IoT Edge использует новое имя пакета и имеет некоторые различия в процессах установки и конфигурации. Если у вас есть устройство IoT Edge с версией 1.0 или 1.1, используйте эти инструкции, чтобы узнать, как обновить до последней версии.

Некоторые основные различия между последним выпуском и версией 1.1 и более ранними включают:

  • Имя пакета изменилось с iotedge на aziot-edge.
  • Пакет libiothsm-std больше не используется. Если вы использовали стандартный пакет, предоставленный в рамках выпуска IoT Edge, ваши конфигурации можно перенести в новую версию. Если вы использовали другую реализацию libiothsm-std, все предоставленные пользователем сертификаты, такие как сертификат удостоверения устройства, ЦС устройства и пакет доверия, потребуется перенастроить.
  • Новая служба удостоверений, aziot-identity-service, была представлена в версии 1.2. Эта служба предоставляет и управляет удостоверениями для IoT Edge и для других компонентов устройств, которым необходимо взаимодействовать с Центром Интернета вещей, например Обновление устройств для Центра Интернета вещей.
  • Файл конфигурации по умолчанию имеет новое имя и расположение. Ранее известные как /etc/iotedge/config.yaml, сведения о конфигурации устройства теперь по умолчанию должны находиться в /etc/aziot/config.toml. Команду iotedge config import можно использовать для переноса сведений о конфигурации из старого расположения и синтаксиса в новые.
    • Команда импорта не может обнаруживать или изменять правила доступа к доверенному модулю платформы устройства (TPM). Если устройство использует аттестацию TPM, необходимо вручную обновить файл /etc/udev/rules.d/tpmaccess.rules, чтобы предоставить доступ к службе aziottpm. Для получения дополнительной информации см. , как предоставить IoT Edge доступ к доверенному платформенному модулю.
  • API рабочей нагрузки в последней версии сохраняет зашифрованные секреты в новом формате. При обновлении с более старой версии до последней версии импортируется существующий главный ключ шифрования. API рабочей нагрузки может считывать секреты, сохраненные в предыдущем формате, с помощью импортированного ключа шифрования. Однако API рабочей нагрузки не может записывать зашифрованные секреты в старом формате. После повторного шифрования секрета модулем он сохраняется в новом формате. Секреты, зашифрованные в последней версии, недоступны тем же модулем в версии 1.1. Если вы сохраняете зашифрованные данные в папке или томе, подключенные к хосту, всегда создайте резервную копию данных перед обновлением, чтобы сохранить возможность понижения версии при необходимости.
  • Для обратной совместимости при подключении устройств, которые не поддерживают TLS 1.2, можно настроить Edge Hub для приема TLS 1.0 или 1.1 через переменную среды SslProtocols . Обратите внимание, что поддержка TLS 1.0 и 1.1 в IoT Hub считается устаревшей и также может быть удалена из Edge Hub в будущих выпусках. Чтобы избежать будущих проблем, используйте TLS 1.2 в качестве единственной версии TLS при подключении к Центру Edge или Центру Интернета вещей.
  • Предварительная версия экспериментального брокера MQTT в Edge Hub 1.2 закончилась и не включена в Edge Hub 1.3 или более поздней версии. Мы продолжаем уточнять наши планы для брокера MQTT на основе полученных отзывов. В то же время, если вам нужен брокер MQTT, совместимый со стандартами, в IoT Edge, рассмотрите возможность развертывания брокера с открытым кодом, например Mosquitto в качестве модуля IoT Edge.
  • Начиная с версии 1.2, при удалении резервного образа из контейнера, контейнер продолжает работать и сохраняется после перезапусков. В версии 1.1 при удалении базового образа контейнер немедленно воссоздается, и базовый образ обновляется.

Перед автоматизацией процессов обновления убедитесь, что он работает на тестовых компьютерах.

Когда вы будете готовы, выполните следующие действия, чтобы обновить IoT Edge на своих устройствах:

  1. Обновите пакетный менеджер apt.

    sudo apt-get update
    
  2. Удалите предыдущую версию IoT Edge, оставив файлы конфигурации на месте.

    sudo apt-get remove iotedge
    
  3. Установите последнюю версию IoT Edge вместе со службой удостоверений Интернета вещей и микроагентом Microsoft Defender для Интернета вещей для Edge.

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

Рекомендуется установить микроагент с агентом Edge, чтобы обеспечить мониторинг безопасности и защиту устройств Edge. Дополнительные сведения о Microsoft Defender для Интернета вещей см. в статье "Что такое Microsoft Defender для Интернета вещей для разработчиков устройств".

  1. Импортируйте старый файл config.yaml в новый формат и примените сведения о конфигурации.

    sudo iotedge config import
    

Теперь, когда служба IoT Edge, запущенная на ваших устройствах, обновлена, выполните действия, описанные в этой статье, чтобы также обновить контейнеры среды выполнения.

Дальнейшие действия

Просмотрите последние выпуски Azure IoT Edge.

Будьте в курсе последних обновлений и объявлений, просматривая блог, посвященный “Интернету вещей”.