다음을 통해 공유


Azure Stack Edge Pro GPU 디바이스에서 IoT Edge 문제 해결

적용 대상: Pro GPU SKU의 경우 예Azure Stack Edge Pro - GPUPro 2 SKU의 경우 예Azure Stack Edge Pro 2Pro R SKU의 경우 예Azure Stack Edge Pro RMini R SKU의 경우 예Azure 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 Hub 서비스에 대한 연결 실패와 같은 오류가 발생하는 경우 가장 일반적인 이유는 연결 문제입니다. 연결 문제는 IoT Hub 서비스에서 기본 통신 포트로 사용하는 AMPQ 포트가 차단되었거나 웹 프록시 서버에서 관련 메시지를 차단하여 발생했을 수 있습니다.

추천 솔루션

다음 단계를 수행합니다.

  1. 이 오류를 해결하려면 디바이스에 대한 IoT Hub 리소스로 이동한 후 Edge 디바이스를 선택합니다.
  2. 모듈 설정 > 런타임 설정으로 이동합니다.
  3. Upstream protocol 환경 변수를 추가하고 AMQPWS 값을 할당합니다. 이 경우 구성된 메시지는 포트 443으로 WebSockets를 통해 전송됩니다.

모듈이 실행 중으로 표시되지만 IP가 할당되어 있지 않습니다.

오류 설명

모듈의 런타임 상태는 실행 중으로 표시되지만 컨테이너화된 앱에 할당된 IP 주소가 없습니다.

이 상태는 Kubernetes 외부 서비스 IP에 대해 제공한 IP 범위가 충분하지 않아서 발생한 것입니다. 배포한 각 컨테이너 또는 VM이 포함되도록 범위를 확장합니다.

추천 솔루션

디바이스의 로컬 웹 UI에서 다음 단계를 수행합니다.

  1. 컴퓨팅 페이지로 이동합니다. 컴퓨팅 네트워크를 사용하도록 설정한 포트를 선택합니다.
  2. Kubernetes 외부 서비스 IP에 대한 고정 IP 범위를 입력합니다. edgehub 서비스에는 1개의 IP가 필요합니다. 또한 배포하고자 하는 각 IoT Edge 모듈 및 VM에 대해 하나의 IP가 필요합니다.
  3. 적용을 선택합니다. 변경된 IP 범위는 즉시 적용됩니다.

자세한 내용은 컨테이너의 외부 서비스 IP 변경을 참조하세요.

IoT Edge 모듈의 고정 IP 구성

문제 설명

Kubernetes는 Azure Stack Edge Pro GPU 디바이스의 각 IoT Edge 모듈에 동적 IP를 할당합니다. 모듈에 대한 고정 IP를 구성하는 방법이 필요합니다.

추천 솔루션

아래에 설명된 대로 K8s-실험적 섹션을 통해 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-실험적 섹션을 통해 만들기 옵션을 사용할 수 있습니다. 다음 서비스 옵션은 포트 바인딩에서 작동해야 합니다.

{
"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 주소를 지정할 수 있습니다.

다음 단계