Обновление 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 в будущих выпусках.†̄ Чтобы избежать проблем в будущем, используйте TLS 1.2 в качестве единственной версии TLS при подключении к Центру Edge или Центр Интернета вещей.
  • Предварительная версия экспериментального брокера MQTT в Edge Hub 1.2 завершена и не включена в Edge Hub 1.4.̄ Мы продолжаем уточнять наши планы для брокера MQTT на основе полученных отзывов. В то же время, если вам нужен совместимый со стандартами брокер MQTT на IoT Edge, рассмотрите возможность развертывания брокера с открытым кодом, такого как ̄Mosquitto€ ̄as 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.

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