分享方式:


針對 Azure Stack Edge Pro GPU 裝置上的 IoT Edge 問題進行疑難排解

適用於: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

本文說明如何檢閱 IoT Edge 代理程式的執行階段回應,以及安裝在裝置上的 IoT Edge 服務錯誤,針對 Azure Stack Edge Pro GPU 裝置上的計算相關錯誤進行疑難排解。

檢閱 IoT Edge 執行階段回應

使用 IoT Edge 代理程式執行階段回應,以針對計算相關的錯誤進行疑難排解。 以下是可能的回應清單:

  • 200:正常
  • 400:部署設定的格式不正確或無效。
  • 417 - 裝置沒有部署組態集。
  • 412:部署設定中的結構描述版本無效。
  • 406:IoT Edge 裝置已離線或未傳送狀態報告。
  • 500:IoT Edge 執行階段中發生錯誤。

如需詳細資訊,請參閱 IoT Edge 代理程式

針對 IoT Edge 服務錯誤進行疑難排解

下列錯誤與 Azure Stack Edge Pro GPU 裝置上的 IoT Edge 服務相關。

計算模組的狀態為 [未知] 且無法使用

錯誤描述

裝置上的所有模組都顯示 [未知] 狀態,且無法使用。 即使重新啟動,[未知] 狀態仍會持續。

建議的解決方案

刪除 IoT Edge 服務,然後重新部署模組。 如需詳細資訊,請參閱移除 IoT Edge 服務

模組顯示為執行中,但無法運作

錯誤描述

模組的執行階段狀態顯示為執行中,但您看不到預期結果。

此條件可能是因為模組路由設定無法運作,或 edgehub 可能未如預期般透過路由傳送訊息。 您可以檢查 edgehub 記錄。 如果您看到無法連線到 IoT 中樞服務之類的錯誤,最常見的原因是連線問題。 連線問題發生的原因,可能是因為 IoT 中樞服務所使用且作為預設通訊連接埠的 AMPQ 連接埠遭到封鎖,或 Web Proxy 伺服器封鎖這些訊息。

建議的解決方案

執行下列步驟:

  1. 若要解決此錯誤,請移至裝置 IoT 中樞資源,然後選取您的 Edge 裝置。
  2. 移至 [設定模組] > [執行階段設定]
  3. 新增 Upstream protocol 環境變數,並將其指派為 AMQPWS 的值。 在此案例中設定的訊息會透過連接埠 443 以 WebSocket 傳送。

模組顯示為執行中,但尚未指派 IP

錯誤描述

模組的執行階段狀態會顯示為執行中,但容器化應用程式尚未指派 IP 位址。

發生此狀況是因為您提供給 Kubernetes 外部服務 IP 的 IP 範圍不夠。 擴充此範圍,確保可涵蓋您部署的每個容器或 VM。

建議的解決方案

在您裝置的本機 Web UI 中執行下列步驟:

  1. 移至 [計算] 頁面。 選取您啟用計算網路的連接埠。
  2. 輸入 Kubernetes 外部服務 IP 的靜態連續 IP 範圍。 您需要一個 IP 來進行 edgehub 服務。 此外,每個 IoT Edge 模組,以及您將部署的每個 VM 都需要一個 IP。
  3. 選取套用。 變更的 IP 範圍應該會立即生效。

如需詳細資訊,請參閱變更容器的外部服務 IP

為 IoT Edge 模組設定靜態 IP

問題說明

Kube 會將動態 Ip 指派給 Azure Stack Edge Pro GPU 裝置上的每個 IoT Edge 模組。 需要方法來設定模組的靜態 IP。

建議的解決方案

您可以透過 K8s-experimental 區段指定 IoT Edge 模組的固定 IP 位址,如下所示:

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

將 Kubernetes 服務公開為叢集 IP 服務以進行內部通訊

問題說明

根據預設,IoT 服務類型為 [負載平衡器],且服務會獲派對外開放的 IP 位址。 如果應用程式需要 Kubernetes 叢集中的 Kubernetes Pod 才能存取叢集中的其他 Pod,您可能需要將服務設定為叢集 IP 服務,而非負載平衡器服務。 如需詳細資訊,請參閱 Azure Stack Edge Pro GPU 裝置上的 Kubernetes 網路

建議的解決方案

您可以透過 K8s-experimental 區段使用建立選項。 下列服務選項應能與連接埠繫結搭配使用。

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

無法建立或更新 IoT 角色

問題說明

在設定期間設定 IoT 裝置時,您可能會看到下列錯誤:

(Http 狀態碼:400) 無法在 <YourDeviceName> 上建立或更新 IoT 角色。 發生錯誤,錯誤碼為 {NO_PARAM}。 如需詳細資訊,請參閱錯誤碼詳細資料 (https://aka.ms/dbe-error-codes)。 如果錯誤持續發生, 請連絡 Microsoft 支援服務。.

建議的解決方案

如果您的資料中心防火牆會根據來源 IP 或 MAC 位址來限制或篩選流量,請確保計算 IP (Kubernetes 節點 IP) 和 MAC 位址均列在允許清單中。 您可以在裝置的 PowerShell 介面上執行 Set-HcsMacAddressPool Cmdlet 來指定 MAC 位址。

下一步