Beheben von IoT Edge-Problemen auf Ihrem Azure Stack Edge Pro-GPU-Gerät

GILT FÜR:Yes for Pro GPU SKUAzure Stack Edge Pro – GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

In diesem Artikel wird beschrieben, wie Sie computebezogene Fehler auf einem Azure Stack Edge Pro GPU-Gerät beheben, indem Sie Laufzeitantworten für den IoT Edge-Agent und Fehler für den IoT Edge-Dienst überprüfen, der auf Ihrem Gerät installiert ist.

IoT Edge-Laufzeitantworten

Verwenden Sie die Runtimeantworten des IoT Edge-Agents, um auf Compute-Instanzen bezogene Fehler zu beheben. Im Folgenden sehen Sie eine Liste der möglichen Antworten:

  • 200 – OK
  • 400 – Die Bereitstellungskonfiguration ist falsch formatiert oder ungültig.
  • 417 – Für das Gerät ist keine Bereitstellungskonfiguration festgelegt.
  • 412 – Die Schemaversion der Bereitstellungskonfiguration ist ungültig.
  • 406 – das IoT Edge-Gerät ist offline oder sendet keine Statusberichte.
  • 500 – in der IoT Edge-Runtime ist ein Fehler aufgetreten.

Weitere Informationen finden Sie unter IoT Edge-Agent.

Behandeln von IoT Edge-Dienstfehlern

Der folgende Fehler steht im Zusammenhang mit dem IoT Edge-Dienst auf Ihrem Azure Stack Edge Pro-GPU-Gerät.

Computemodule weisen den Status „Unbekannt“ auf und können nicht verwendet werden

Fehlerbeschreibung

Alle Module auf dem Gerät weisen den Status „Unbekannt“ auf und können nicht verwendet werden. Der Unbekannte Status wird durch einen Neustart beibehalten.

Vorgeschlagene Lösung

Löschen Sie den IoT Edge-Dienst, und stellen Sie dann das Modul bzw. die Module erneut bereit. Weitere Informationen finden Sie unter Entfernen des IoT Edge-Diensts.

Module werden als ausgeführt angezeigt, funktionieren jedoch nicht.

Fehlerbeschreibung

Als Laufzeitstatus des Moduls wird „ausgeführt“ angezeigt, aber Sie sehen nicht die erwarteten Ergebnisse.

Die Ursache dieser Bedingung könnte sein, dass eine Modulroutenkonfiguration nicht funktioniert oder edgehub Nachrichten nicht wie erwartet weiterleitet. Sie können die edgehub-Protokolle überprüfen. Wenn Sie Fehler sehen, beispielsweise die Verbindung mit dem IoT Hub-Dienst nicht hergestellt werden kann, sind Konnektivitätsprobleme der häufigste Grund. Die Ursache der Konnektivitätsprobleme könnte sein, dass der AMPQ-Port, den der IoT Hub-Dienst als Standardport für die Kommunikation verwendet, blockiert ist oder der Webproxyserver diese Nachrichten blockiert.

Vorgeschlagene Lösung

Führen Sie die folgenden Schritte aus:

  1. Um den Fehler zu beheben, wechseln Sie zur IoT Hub-Ressource für Ihr Gerät, und wählen Sie dann Ihr Edge-Gerät aus.
  2. Gehen Sie zu Module festlegen > Laufzeiteinstellungen.
  3. Fügen Sie die Umgebungsvariable Upstream protocol hinzu, und weisen Sie ihr den Wert AMQPWS zu. Die in diesem Fall konfigurierten Meldungen werden über den Port 443 über WebSockets gesendet.

Module werden als ausgeführt angezeigt, aber ihnen ist keine IP-Adresse zugewiesen.

Fehlerbeschreibung

Als Laufzeitstatus des Moduls wird „ausgeführt“ angezeigt, aber der containerisierten App ist keine IP-Adresse zugewiesen.

Ursache dieser Bedingung ist, dass der Bereich der IP-Adressen, den Sie für „Externe Dienst-IP-Adressen für Kubernetes“ angegeben haben, nicht ausreicht. Erweitern Sie diesen Bereich, um sicherzustellen, dass alle bereitgestellten Container oder VMs abgedeckt werden.

Vorgeschlagene Lösung

Gehen Sie auf der lokalen Webbenutzeroberfläche Ihres Geräts wie folgt vor:

  1. Wechseln Sie zur Seite Compute. Wählen Sie den Port aus, für den Sie das Computenetzwerk aktiviert haben.
  2. Geben Sie einen statischen, zusammenhängenden Bereich von IP-Adressen für Externe Dienst-IP-Adressen für Kubernetes ein. Sie benötigen eine IP-Adresse für den edgehub-Dienst. Außerdem benötigen Sie für jedes IoT Edge-Modul und für jeden virtuellen Computer, den Sie bereitstellen, eine IP-Adresse.
  3. Wählen Sie Übernehmen. Der geänderte IP-Adressbereich sollte sofort wirksam werden.

Weitere Informationen finden Sie unter Ändern externer Dienst-IP-Adressen für Container.

Konfigurieren statischer IP-Adressen für IoT Edge-Module

Problembeschreibung

Kubernetes weist jedem IoT Edge-Modul auf Ihrem Azure Stack Edge Pro-GPU-Gerät dynamische IP-Adressen zu. Um statische IP-Adresse für die Module zu konfigurieren, ist eine Methode erforderlich.

Vorgeschlagene Lösung

Sie können feste IP-Adressen für Ihre IoT Edge-Module über den Abschnitt „K8s-experimental“ angeben, wie unten beschrieben:

{
  "k8s-experimental": {
    "serviceOptions" : {
      "loadBalancerIP" : "100.23.201.78",
      "type" : "LoadBalancer"
    }
  }
}

Verfügbarmachen des Kubernetes-Diensts als Cluster-IP-Dienst für die interne Kommunikation

Problembeschreibung

Standardmäßig ist der IoT-Diensttyp Load Balancer, und dem Dienst werden extern ausgerichtete IP-Adressen zugewiesen. Wenn eine Anwendung Kubernetes-Pods innerhalb des Kubernetes-Clusters für den Zugriff auf andere Pods im Cluster benötigt, müssen Sie den Dienst möglicherweise als Cluster-IP-Dienst statt als Load Balancer-Dienst konfigurieren. Weitere Informationen finden Sie unter Kubernetes-Netzwerke auf Ihrem Azure Stack Edge Pro-GPU-Gerät.

Vorgeschlagene Lösung

Sie können die Erstellungsoptionen über den Abschnitt „K8s-experimental“ verwenden. Die folgende Dienstoption sollte mit Portbindungen funktionieren.

{
"k8s-experimental": {
  "serviceOptions" : {
    "type" : "ClusterIP"
    }
  }
}

Erstellen oder Aktualisieren der IoT-Rolle nicht möglich

Problembeschreibung

Beim Konfigurieren des IoT-Geräts während des Setups wird möglicherweise der folgende Fehler angezeigt:

(HTTP-Statuscode: 400) Die IoT-Rolle konnte auf <YourDeviceName> nicht erstellt oder aktualisiert werden. Fehler mit dem Fehlercode {NO_PARAM}. Weitere Informationen finden Sie in den Fehlercodedetails (https://aka.ms/dbe-error-codes). Wenn der Fehler weiterhin besteht, wenden Sie sich an Microsoft-Support.

Vorgeschlagene Lösung

Wenn die Firewall des Rechenzentrums Datenverkehr basierend auf Quell-IPs oder MAC-Adressen einschränkt oder filtert, stellen Sie sicher, dass die Compute-IPs (Kubernetes-Knoten-IPs) und MAC-Adressen in der Liste zulässiger Adressen enthalten sind. Die MAC-Adressen können durch Ausführen des Set-HcsMacAddressPool-Cmdlets auf der PowerShell-Schnittstelle des Geräts angegeben werden.

Nächste Schritte