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

Область применения:IoT Edge 1.4 checkmark IoT Edge 1.4

Важно!

IoT Edge 1.4 является поддерживаемым выпуском. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.

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

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

  • Подсистема безопасности. Хотя архитектура подсистемыбезопасности изменилась между версией 1.1 и 1.2, ее обязанности остались неизменными. Он запускается на устройстве, обрабатывает задачи на основе безопасности и запускает модули при запуске устройства. Подсистему безопасности можно обновить только с самого устройства.

  • Среда выполнения IoT Edge — среда выполнения IoT Edge состоит из модулей центра Интернета вещей (edgeHub) и агента IoT Edge (edgeAgent). В зависимости от структуры развертывания среда выполнения может быть обновлена с устройства или удаленно.

Способ обновления

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

Выпуски исправлений

При обновлении между выпусками исправлений , например 1.4.1 до 1.4.2, порядок обновления не важен. Подсистему безопасности или контейнеры среды выполнения можно обновить до или после другого. Обновление между выпусками исправлений:

  1. Обновление подсистемы безопасности
  2. Обновление контейнеров среды выполнения
  3. Проверка соответствия версий

Вы можете в любое время устранить неполадки процесса обновления.

Основные или незначительные выпуски

При обновлении между основными или дополнительными выпусками, например с версии 1.1 до 1.4, обновите подсистему безопасности и контейнеры среды выполнения. Перед выпуском мы протестируем подсистему безопасности и сочетание версий контейнера среды выполнения. Обновление между основными или дополнительными выпусками продукта:

  1. На устройстве остановите IoT Edge с помощью команды sudo systemctl stop iotedge и удаления.

  2. На устройстве обновите подсистему контейнеров Docker или Moby.

  3. На устройстве установите IoT Edge.

    Если вы импортируете старую конфигурацию с помощью iotedge config import, измените образ [agent.config] созданного /etc/aziot/config.toml файла, чтобы использовать образ 1.4 для edgeAgent.

    Дополнительные сведения см. в разделе "Настройка параметров устройства IoT Edge".

  4. В Центр Интернета вещей обновите развертывание модуля, чтобы ссылаться на новейшие системные модули.

  5. На устройстве запустите IoT Edge с помощью sudo iotedge config apply.

Вы можете в любое время устранить неполадки процесса обновления.

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

Подсистема безопасности 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 aziot-edge

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

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

При выполнении apt-get install aziot-edge обновления подсистемы безопасности устанавливается служба удостоверений в aziot-identity-serviceкачестве обязательной зависимости.

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

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

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 для проверки версии модуля среды выполнения.

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

Сведения о тегах 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.4), необходимо обновить тег в манифесте развертывания и применить изменения к устройству.

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

  2. На вкладке "Модули" выберите среду выполнения Параметры.

    Screenshot that shows location of the Runtime Settings tab.

  3. В среде выполнения Параметры обновите значение URI изображения в разделе агента Edge с требуемой версией. Пока не нажимайте кнопку "Применить ".

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

  4. Перейдите на вкладку "Пограничный концентратор" и обновите значение URI изображения с той же требуемой версией.

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

  5. Нажмите кнопку "Применить" , чтобы сохранить изменения.

  6. Выберите "Просмотр и создание", просмотрите развертывание, как показано в JSON-файле, и нажмите кнопку "Создать".

Проверка соответствия версий

  1. На устройстве используется iotedge version для проверка версии подсистемы безопасности. Выходные данные включают основные, незначительные и номера версий редакции. Например, iotedge 1.4.2.

  2. В параметрах среды выполнения развертывания устройства убедитесь, что версии URI образа EdgeHub и edgeAgent соответствуют основной и дополнительной версии подсистемы безопасности. Если версия подсистемы безопасности — 1.4.2, версии образа будут иметь значение 1.4. Например, mcr.microsoft.com/azureiotedge-hub:1.4 и mcr.microsoft.com/azureiotedge-agent:1.4.

Примечание.

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

Последнюю версию Azure IoT Edge можно найти на сайте GitHub.

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

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

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

  • Имя пакета изменилось с iotedge на aziot-edge.
  • Пакет libiothsm-std больше не используется. Если вы использовали стандартный пакет, предоставленный в составе выпуска IoT Edge, то ваши конфигурации можно перенести в новую версию. Если вы использовали другую реализацию li биография thsm-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.4. Мы продолжаем уточнять наши планы для брокера 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, также необходимо обновить контейнеры среды выполнения до последней версии. Процесс обновления для контейнеров среды выполнения совпадает с процессом обновления для службы IoT Edge.

Устранение неполадок

Журналы системы можно просматривать в любое время, выполнив следующие команды с устройства.

  • Начните устранять неполадки с помощью команды проверка. Он запускает коллекцию тестов конфигурации и подключения для распространенных проблем.

    sudo iotedge check --verbose
    
  • Чтобы просмотреть состояние системы IoT Edge, выполните следующую команду:

    sudo iotedge system status 
    
  • Чтобы просмотреть журналы компонентов узла, выполните следующую команду:

    sudo iotedge system logs
    
  • Чтобы проверка для повторяющихся проблем, сообщающихся с edgeAgent и edgeHub, выполните следующую команду:

    Обязательно замените <module> собственным именем модуля. Если нет проблем, выходные данные не отображаются.

    sudo iotedge logs <module>
    

Дополнительные сведения см. в разделе "Устранение неполадок устройства IoT Edge".

Следующие шаги

Ознакомьтесь с последними выпусками Azure IoT Edge на сайте GitHub.

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