Бөлісу құралы:


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

Область применения: Значок IoT Edge 1.1

Внимание

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

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

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

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

Подсистема безопасности 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. В разделе модулей Azure IoT Edge выберите Параметры среды выполнения.

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

  3. В параметрах среды выполненияобновите значение Image (Образ) для центра Edge, указав нужную версию. Пока не нажимайте кнопку Сохранить.

    Обновление версии образа центра Edge

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

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

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

  6. Нажмите кнопку Review + create (Проверить и создать), проверьте развернутую службу и нажмите кнопку Создать.

Особый случай: обновление с версии 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, то все предоставляемые пользователем сертификаты, такие как сертификат удостоверения устройства, центр сертификации устройства и пакет доверия, потребуется настроить заново.
  • В выпуске 1.2 появилась новая служба идентификации aziot-identity-service. Эта служба обрабатывает подготовку удостоверений (и управление ими) для 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, можно настроить Пограничный концентратор для приема TLS 1.0 или 1.1 через переменную среды SslProtocols. Обратите внимание, что поддержка TLS 1.0 и 1.1 в Центр Интернета вещей считается устаревшей, а также может быть удалена из Edge Hub в будущих выпусках. Чтобы избежать будущих проблем, используйте TLS 1.2 в качестве единственной версии TLS при подключении к Пограничному концентратору или Центр Интернета вещей.
  • Предварительная версия экспериментального брокера 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 на сайте GitHub.

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