Aktualisieren von IoT Edge

Gilt für:IoT Edge 1.4 checkmark IoT Edge 1.4

Wichtig

IoT Edge Version 1.4 wird unterstützt. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

Wenn neue Versionen des IoT Edge-Diensts veröffentlicht werden, aktualisieren Sie Ihre IoT Edge-Geräte, damit sie über die neuesten Funktionen und Sicherheitsverbesserungen verfügen. Dieser Artikel enthält Informationen zum Aktualisieren Ihrer IoT Edge-Geräte, wenn eine neue Version verfügbar ist.

Zwei logische Komponenten eines IoT Edge-Geräts müssen bei der Umstellung auf eine neuere Version aktualisiert werden.

  • Sicherheitssubsystem – Obwohl sich die Architektur des Sicherheitssubsystemszwischen Version 1.1 und 1.2 geändert hat, haben die Verantwortlichkeiten dasselbe geändert Standard. Es wird auf dem Gerät ausgeführt, verarbeitet sicherheitsbasierte Aufgaben und startet die Module, wenn das Gerät gestartet wird. Das Sicherheitssubsystem kann nur vom Gerät selbst aktualisiert werden.

  • IoT Edge Runtime – Die IoT Edge-Laufzeit besteht aus den IoT Edge-Hubmodulen (edgeHub) und IoT Edge-Agent (edgeAgent). Je nachdem, wie Sie Die Bereitstellung strukturieren, kann die Laufzeit entweder über das Gerät oder remote aktualisiert werden.

Durchführen der Aktualisierung

Verwenden Sie die Abschnitte dieses Artikels, um sowohl das Sicherheitssubsystem als auch die Laufzeitcontainer auf einem Gerät zu aktualisieren.

Patchreleases

Wenn Sie ein Upgrade zwischen Patchversionen durchführen, z. B. 1.4.1 auf 1.4.2, ist die Updatereihenfolge nicht wichtig. Sie können das Sicherheitssubsystem oder die Laufzeitcontainer vor oder nach dem anderen aktualisieren. So aktualisieren Sie zwischen Patchversionen:

  1. Aktualisieren des Sicherheitssubsystems
  2. Aktualisieren der Laufzeitcontainer
  3. Übereinstimmung der Versionen überprüfen

Sie können jederzeit probleme mit dem Upgradeprozess beheben .

Haupt- oder Nebenversionen

Wenn Sie ein Upgrade zwischen Hauptversionen oder Nebenversionen durchführen, z. B. von 1.1 auf 1.4, aktualisieren Sie sowohl das Sicherheitssubsystem als auch die Laufzeitcontainer. Vor einer Veröffentlichung testen wir das Sicherheitssubsystem und die Kombination aus Laufzeitcontainerversion. So aktualisieren Sie zwischen Haupt- oder Nebenproduktversionen:

  1. Beenden Sie ioT Edge auf dem Gerät mithilfe des Befehls sudo systemctl stop iotedge und deinstallieren Sie es.

  2. Aktualisieren Sie auf dem Gerät Ihr Containermodul, entweder Docker oder Moby.

  3. Installieren Sie auf dem Gerät IoT Edge.

    Wenn Sie eine alte Konfiguration mit iotedge config importimportieren, ändern Sie das [agent.config]-Bild der generierten /etc/aziot/config.toml Datei, um das 1.4-Image für edgeAgent zu verwenden.

    Weitere Informationen finden Sie unter Konfigurieren von IoT Edge-Geräteeinstellungen.

  4. Aktualisieren Sie im IoT Hub die Modulbereitstellung, um auf die neuesten Systemmodule zu verweisen.

  5. Starten Sie auf dem Gerät das IoT Edge mit sudo iotedge config apply.

Sie können jederzeit probleme mit dem Upgradeprozess beheben .

Aktualisieren des Sicherheitssubsystems

Das IoT Edge-Sicherheitssubsystem enthält eine Gruppe von nativen Komponenten, die auf dem IoT Edge-Gerät mithilfe des Paket-Managers aktualisiert werden müssen.

Überprüfen Sie die Version des auf Ihrem Gerät ausgeführten Sicherheitssubsystems mithilfe des Befehls iotedge version. Wenn Sie IoT Edge für Linux unter Windows verwenden, müssen Sie eine SSH-Verbindung mit dem virtuellen Linux-Computer erstellen, um die Version zu überprüfen.

Wichtig

Wenn Sie ein Gerät von Version 1.0 oder 1.1 auf die neueste Version aktualisieren, gibt es Unterschiede bei den Installations- und Konfigurationsprozessen, die zusätzliche Schritte erfordern. Weitere Informationen finden Sie in den Schritten weiter unten in diesem Artikel: Sonderfall: Aktualisieren von 1.0 oder 1.1 auf neueste Version.

Verwenden Sie apt-get auf Linux x64-Geräten den entsprechenden Paket-Manager, um das Sicherheitssubsystem auf die neueste Version zu aktualisieren.

Aktualisieren Sie apt:

sudo apt-get update

Hinweis

Anleitungen zum Herunterladen der neuesten Repositorykonfiguration von Microsoft finden Sie in den vorbereitenden Schritten zum Installieren von IoT Edge.

Überprüfen Sie, welche Versionen von IoT Edge verfügbar sind:

apt list -a aziot-edge

IoT Edge aktualisieren:

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

Das Ausführen von apt-get install aziot-edge Upgrades des Sicherheitssubsystems und installiert den Identitätsdienstaziot-identity-service als erforderliche Abhängigkeit.

Es wird empfohlen, den Micro-Agent zusammen mit dem Edge-Agent zu installieren, um die Sicherheitsüberwachung und -härtung Ihrer Edgegeräte zu ermöglichen. Weitere Informationen zu Microsoft Defender für Cloud finden Sie unter Was ist Microsoft Defender für IoT für Geräteentwickler?.

Wenden Sie dann die Konfiguration erneut an, um sicherzustellen, dass das System vollständig aktualisiert wird.

sudo iotedge config apply

Aktualisieren der Runtimecontainer

Die Art, auf die Sie die IoT Edge-Agent- und IoT Edge-Hubcontainer aktualisieren, hängt davon ab, ob Sie bei der Bereitstellung fortlaufende Versionstags (wie 1.1) oder spezifische Versionstags (wie 1.1.1) verwenden.

Überprüfen Sie die Version der aktuell auf Ihrem Gerät ausgeführten IoT Edge-Agent- und IoT Edge-Hubmodule mithilfe der Befehle iotedge logs edgeAgent und iotedge logs edgeHub. Wenn Sie IoT Edge für Linux unter Windows verwenden, müssen Sie eine SSH-Verbindung mit dem virtuellen Linux-Computer erstellen, um die Versionen des Runtimemoduls zu überprüfen.

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

Grundlagen von IoT Edge-Tags

Die IoT Edge-Agent- und IoT Edge-Hubimages sind im Tag mit der IoT Edge-Version gekennzeichnet, der sie zugeordnet sind. Es gibt zwei Möglichkeiten zum Verwenden von Tags mit den Runtime-Images:

  • Fortlaufende Tags: Verwenden Sie nur die ersten zwei Stellen der Versionsnummer, um zum neuesten Image zu gelangen, das mit diesen Stellen übereinstimmt. Beispielsweise wird, sobald eine neue Version veröffentlicht wird, 1.1 immer so aktualisiert, dass auf die neueste 1.1.x-Version verwiesen wird. Wenn die Containerruntime auf Ihrem IoT Edge-Gerät das Image erneut per Pull herunterlädt, werden die Laufzeitmodule auf die neueste Version aktualisiert. Bereitstellungen aus dem Azure-Portal weisen standardmäßig fortlaufende Tags auf. Dieser Ansatz wird für Entwicklungszwecke vorgeschlagen.

  • Spezifische Tags: Verwenden Sie alle drei Stellen der Versionsnummer, um die Imageversion explizit festzulegen. Beispielsweise ändert sich 1.1.0 nach dem ersten Release nicht. Sie können im Bereitstellungsmanifest eine neue Versionsnummer deklarieren, wenn Sie zur Aktualisierung bereit sind. Dieser Ansatz wird für Produktionszwecke vorgeschlagen.

Aktualisieren eines Images mit fortlaufendem Tag

Wenn Sie in Ihrer Bereitstellung fortlaufende Tags verwenden (Beispiel: mcr.microsoft.com/azureiotedge-hub:1.1), müssen Sie die Containerruntime auf Ihrem Gerät dazu zwingen, per Pull die neueste Version des Images zu laden.

Löschen Sie die lokale Version des Images von Ihrem IoT Edge-Gerät. Auf Windows-Computern werden bei der Deinstallation des Sicherheitssubsystems auch die Runtimeimages entfernt, sodass Sie diesen Schritt nicht erneut ausführen müssen.

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

Möglicherweise müssen Sie das force-Flag -f verwenden, um die Images zu entfernen.

Der IoT Edge-Dienst ruft die neuesten Versionen der Laufzeitimages ab und startet sie automatisch erneut auf Ihrem Gerät.

Aktualisieren eines Images mit spezifischem Tag

Wenn Sie bestimmte Tags in Ihrer Bereitstellung verwenden (z. B. mcr.microsoft.com/azureiotedge-hub:1.4), müssen Sie lediglich das Tag in Ihrem Bereitstellungsmanifest aktualisieren und die Änderungen auf Ihr Gerät anwenden.

  1. Wählen Sie Ihr IoT Edge-Gerät im IoT-Hub im Azure-Portal aus, und klicken Sie dann auf Module festlegen.

  2. Wählen Sie auf der Registerkarte "Module" die Option "Runtime Einstellungen" aus.

    Screenshot that shows location of the Runtime Settings tab.

  3. Aktualisieren Sie in runtime Einstellungen den Image-URI-Wert im Edge-Agent-Abschnitt mit der gewünschten Version. Wählen Sie noch nicht "Übernehmen" aus.

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

  4. Wählen Sie die Edge Hub-Registerkarte aus, und aktualisieren Sie den Image-URI-Wert mit derselben gewünschten Version.

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

  5. Wählen Sie "Übernehmen" aus, um Änderungen zu speichern.

  6. Wählen Sie "Überprüfen" und "Erstellen" aus, überprüfen Sie die Bereitstellung wie in der JSON-Datei dargestellt, und wählen Sie "Erstellen" aus.

Überprüfen der Versionsübereinstimmung

  1. Verwenden Sie iotedge version auf Ihrem Gerät, um die Version des Sicherheitssubsystems zu überprüfen. Die Ausgabe enthält die Nummern der Haupt-, Neben- und Revisionsversion. Beispiel: iotedge 1.4.2.

  2. Überprüfen Sie in den Laufzeiteinstellungen für die Gerätebereitstellung, ob die EdgeHub - und edgeAgent-Image-URI-Versionen mit der Haupt- und Nebenversion des Sicherheitssubsystems übereinstimmen. Wenn die Version des Sicherheitssubsystems 1.4.2 lautet, wird für die Imageversionen 1.4 verwenden. Beispiel: mcr.microsoft.com/azureiotedge-hub:1.4 und mcr.microsoft.com/azureiotedge-agent:1.4.

Hinweis

Aktualisieren Sie das IoT Edge-Sicherheitssubsystem und die Laufzeitcontainer auf dieselbe unterstützte Version. Obwohl nicht übereinstimmende Versionen unterstützt werden, haben wir nicht alle Versionskombinationen getestet.

Informationen zur neuesten Version von Azure IoT Edge finden Sie unter Azure IoT Edge releases (Azure IoT Edge-Versionen).

Sonderfall: Update von 1.0 oder 1.1 auf die aktuelle Version

Ab Version 1.2 verwendet der IoT Edge-Dienst einen neuen Paketnamen, und es gibt einige Unterschiede bei den Installations- und Konfigurationsprozessen. Wenn Sie ein IoT Edge-Gerät haben, auf dem Version 1.0 oder 1.1 ausgeführt wird, informieren Sie sich in diesen Anleitungen, wie ein Update auf das aktuelle Release durchgeführt wird.

Einige der wichtigsten Unterschiede zwischen der neuesten Version und Version 1.1 und früheren Versionen umfassen:

  • Der Paketname wurde von iotedge in aziot-edge geändert.
  • Das Paket libiothsm-std wird nicht mehr verwendet. Wenn Sie das als Teil der IoT Edge-Version bereitgestellte Standardpaket verwendet haben, können Ihre Konfigurationen auf die neue Version übertragen werden. Wenn Sie eine andere Implementierung von li Biografie thsm-std verwendet haben, müssen alle vom Benutzer bereitgestellten Zertifikate wie das Geräteidentitätszertifikat, die Gerätezertifizierungsstelle und das Vertrauensbündel neu konfiguriert werden.
  • Ein neuer Identitätsdienst, aziot-identity-service, wurde als Teil des Releases 1.2 eingeführt. Dieser Dienst übernimmt die Identitätsbereitstellung und -verwaltung für IoT Edge und andere Gerätekomponenten, die mit IoT Hub kommunizieren müssen, wie z. B. Device Update for IoT Hub.
  • Die Standardkonfigurationsdatei hat einen neuen Namen und Speicherort. Früher lautete er /etc/iotedge/config.yaml. Jetzt werden Ihre Gerätekonfigurationsinformationen standardmäßig in /etc/aziot/config.toml gespeichert. Mithilfe des Befehls iotedge config import können Konfigurationsinformationen aus dem alten Speicherort und die Syntax in den neuen Speicherort migriert werden.
    • Der Importbefehl kann keine Zugriffsregeln für das vertrauenswürdige Plattformmodul (Trusted Platform Module, TPM) eines Geräts erkennen oder ändern. Wenn Ihr Gerät den TPM-Nachweis verwendet, müssen Sie die Datei „/etc/udev/rules.d/tpmaccess.rules“ manuell aktualisieren, um Zugriff auf den Dienst „aziottpm“ zu gewähren. Weitere Informationen finden Sie unter Gewähren von IoT Edge-Zugriff auf das TPM.
  • Die Workload-API in Version 1.2 speichert verschlüsselte Geheimnisse in einem neuen Format. Wenn Sie ein Upgrade von einer älteren Version auf die neueste Version durchführen, wird der vorhandene Masterverschlüsselungsschlüssel importiert. Die Workload-API kann Geheimnisse lesen, die im vorherigen Format mit dem importierten Verschlüsselungsschlüssel gespeichert wurden. Die Workload-API kann jedoch keine verschlüsselten Geheimnisse im alten Format schreiben. Sobald ein Modul einen geheimen Schlüssel erneut verschlüsselt hat, wird es im neuen Format gespeichert. In Version 1.1 verschlüsselte Geheimnisse können vom selben Modul in Version 1.1 nicht gelesen werden. Wenn Sie verschlüsselte Daten in einem vom Host eingebundenen Ordner oder Volume dauerhaft speichern, erstellen Sie immer eine Sicherungskopie der Daten bevor Sie ein Upgrade durchführen, um wenn nötig wieder ein Downgrade durchführen zu können.
  • Zur Abwärtskompatibilität beim Verbinden von Geräten, die TLS 1.2 nicht unterstützen, können Sie Edge Hub so konfigurieren, dass TLS 1.0 oder 1.1 weiterhin über die Umgebungsvariable SslProtocols akzeptiert wird. Die Unterstützung für TLS 1.0 und 1.1 im IoT Hub gilt als legacy und kann auch in zukünftigen Versionen vom Edge Hub entfernt werden.  Verwenden Sie zur Vermeidung zukünftiger Probleme TLS 1.2 als einzige TLS-Version, wenn Sie eine Verbindung mit Edge Hub oder IoT Hub herstellen.
  • Die Vorschau für den experimentellen MQTT-Broker in Edge Hub 1.2 wurde beendet und ist nicht in Edge Hub 1.4 enthalten. Wir arbeiten basierend auf erhaltenem Feedback weiterhin unsere Pläne für einen MQTT-Broker aus. Wenn Sie in der Zwischenzeit einen standardkonformen MQTT-Broker für IoT Edge benötigen, ziehen Sie die Bereitstellung eines Open-Source-Brokers wie Mosquitto als IoT Edge-Modul in Erwägung.
  • Wenn ab Version 1.2 ein Hintergrundimage aus einem Container entfernt wird, wird der Container weiter ausgeführt und bleibt auch nach Neustarts bestehen. Wenn in 1.1 ein Hintergrundimage entfernt wird, wird der Container sofort neu erstellt und das Hintergrundimage aktualisiert.

Vergewissern Sie sich vor dem Automatisieren von Updateprozessen, dass dies auf Testcomputern funktioniert.

Wenn Sie dazu bereit sind, führen Sie die folgenden Schritte zum Aktualisieren von IoT Edge auf Ihren Geräten aus:

  1. Aktualisieren Sie „apt“.

    sudo apt-get update
    
  2. Deinstallieren Sie die vorherige Version von IoT Edge, behalten Sie aber Ihre Konfigurationsdateien an deren Speicherort bei.

    sudo apt-get remove iotedge
    
  3. Installieren Sie die neueste Version von IoT Edge zusammen mit dem IoT-Identitätsdienst und dem Microsoft Defender für IoT-Micro-Agent für Edge.

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

Es wird empfohlen, den Micro-Agent zusammen mit dem Edge-Agent zu installieren, um die Sicherheitsüberwachung und -härtung Ihrer Edgegeräte zu ermöglichen. Weitere Informationen zu Microsoft Defender für Cloud finden Sie unter Was ist Microsoft Defender für IoT für Geräteentwickler?.

  1. Importieren Sie die alte Datei „config.YAML“ in ihr neues Format, und wenden Sie die Konfigurationsinformationen an.

    sudo iotedge config import
    

Nachdem der neueste IoT Edge-Dienst auf Ihren Geräten ausgeführt wird, müssen Sie auch die Laufzeitcontainer auf die neueste Version aktualisieren. Der Aktualisierungsprozess für Laufzeitcontainer entspricht dem Aktualisierungsprozess für den IoT Edge-Dienst.

Problembehandlung

Sie können Protokolle Ihres Systems jederzeit anzeigen, indem Sie die folgenden Befehle von Ihrem Gerät aus ausführen.

  • Beginnen Sie mit der Problembehandlung mit dem Befehl "Überprüfen ". Es führt eine Sammlung von Konfigurations- und Verbindungstests für häufige Probleme aus.

    sudo iotedge check --verbose
    
  • Führen Sie Folgendes aus, um den Status des IoT Edge-Systems anzuzeigen:

    sudo iotedge system status 
    
  • Führen Sie Folgendes aus, um Hostkomponentenprotokolle anzuzeigen:

    sudo iotedge system logs
    
  • Führen Sie Folgendes aus, um nach wiederkehrenden Problemen zu suchen, die mit EdgeAgent und EdgeHub gemeldet wurden:

    Ersetzen Sie unbedingt <module> ihren eigenen Modulnamen. Wenn keine Probleme auftreten, wird keine Ausgabe angezeigt.

    sudo iotedge logs <module>
    

Weitere Informationen finden Sie unter Problembehandlung für Ihr IoT Edge-Gerät.

Nächste Schritte

Zeigen Sie die neuesten Azure IoT Edge releases (Azure IoT Edge-Versionen) an.

Bleiben Sie mit den neuesten Updates und Ankündigungen im Internet of Things-Blog auf dem Laufenden.