Solución de problemas de IoT Edge en el dispositivo Azure Stack Edge Pro con GPU
SE APLICA A: Azure Stack Edge Pro: GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
En este artículo se describe cómo solucionar errores relacionados con el proceso en un dispositivo Azure Stack Edge Pro con GPU mediante la revisión de las respuestas en tiempo de ejecución del agente de IoT Edge y los errores del servicio IoT Edge instalado en el dispositivo.
Revisión de respuestas en tiempo de ejecución de IoT Edge
Uso de las respuestas del entorno de ejecución del agente de IoT Edge para solucionar los problemas relacionados con el proceso. A continuación, se ofrece una lista de las posibles respuestas:
- 200 - CORRECTO
- 400 - La configuración de implementación tiene un formato incorrecto o no es válida.
- 417 - El dispositivo no tiene un conjunto de configuración de implementación.
- 412 - La versión del esquema de la configuración de implementación no es válida.
- 406 - El dispositivo de IoT Edge está sin conexión o no envía informes de estado.
- 500 - Error en el entorno en tiempo de ejecución de Azure IoT Edge.
Para más información, consulte Agente de IoT Edge.
Solución de problemas de errores del servicio IoT Edge
El siguiente error está relacionado con el servicio IoT Edge en el dispositivo Azure Stack Edge Pro con GPU.
Los módulos de proceso tienen el estado Desconocido y no se pueden usar
Descripción del error
Todos los módulos del dispositivo muestran el estado Desconocido y no se pueden usar. El estado Desconocido persiste tras un reinicio.
Solución propuesta
Elimine el servicio de IoT Edge y, a continuación, vuelva a implementar los módulos. Para obtener más información, consulte Eliminación del servicio de IoT Edge.
Aparece que los módulos se están ejecutando, pero no funcionan
Descripción del error
El estado de tiempo de ejecución del módulo indica que está en ejecución, pero no ve los resultados esperados.
Esta condición puede deberse a una configuración de ruta de módulo que no funciona o puede que edgehub
no esté enrutando mensajes según lo previsto. Puede comprobar los registros edgehub
. Si ve que hay errores, como que no se puede conectar al servicio IoT Hub, el motivo más común son los problemas de conectividad. Los problemas de conectividad pueden deberse a que el puerto AMPQ que el servicio IoT Hub usa como puerto predeterminado para la comunicación está bloqueado o el servidor proxy web bloquea estos mensajes.
Solución propuesta
Siga estos pasos:
- Para resolver el error, vaya al recurso IoT Hub del dispositivo y, a continuación, seleccione el dispositivo perimetral.
- Vaya a Establecer módulos > Configuración de tiempo de ejecución.
- Agregue la variable de entorno
Upstream protocol
y asígnele el valorAMQPWS
. Los mensajes configurados en este caso se envían a través de WebSockets por el puerto 443.
Aparece que los módulos se están ejecutando, pero no tienen una IP asignada
Descripción del error
El estado de tiempo de ejecución del módulo indica que está en ejecución, pero la aplicación en contenedor no tiene ninguna dirección IP asignada.
Esta condición se debe a que el intervalo de direcciones IP que proporcionó para direcciones IP del servicio externo de Kubernetes no es suficiente. Amplíe este intervalo para asegurarse de que abarca todos los contenedores o máquinas virtuales que ha implementado.
Solución propuesta
En la interfaz de usuario web local del dispositivo, realice los pasos siguientes:
- Vaya a la página Proceso. Seleccione el puerto para el que ha habilitado la red de proceso.
- Especifique un intervalo estático y contiguo de direcciones IP para las direcciones IP del servicio externo de Kubernetes. Necesita una dirección IP para el servicio
edgehub
. Además, necesita una dirección IP para cada módulo de IoT Edge y para cada máquina virtual que vaya a implementar. - Seleccione Aplicar. El intervalo de IP cambiado debe surtir efecto de inmediato.
Para obtener más información, consulte Cambio de IP de servicio externo para contenedores.
Configuración de direcciones IP estáticas para módulos IoT Edge
Descripción del problema
Kubernetes asigna direcciones IP dinámicas a cada módulo IoT Edge en el dispositivo Azure Stack Edge Pro con GPU. Se necesita un método para configurar direcciones IP estáticas para los módulos.
Solución propuesta
Puede especificar direcciones IP fijas para los módulos IoT Edge a través de la sección K8s-experimental, como se describe a continuación:
{
"k8s-experimental": {
"serviceOptions" : {
"loadBalancerIP" : "100.23.201.78",
"type" : "LoadBalancer"
}
}
}
Exposición de Kubernetes Service como servicio IP de clúster para la comunicación interna
Descripción del problema
De manera predeterminada, el tipo de servicio de IoT es de tipo equilibrador de carga y se le asignan direcciones IP orientadas externamente. Si una aplicación necesita pods de Kubernetes en el clúster de Kubernetes para acceder a otros pods del clúster, es posible que tenga que configurar el servicio como un servicio IP de clúster en lugar de un servicio de equilibrador de carga. Para obtener más información, consulte Redes de Kubernetes en el dispositivo Azure Stack Edge Pro con GPU.
Solución propuesta
Puede usar las opciones de creación a través de la sección K8s-experimental. La siguiente opción de servicio debe funcionar con enlaces de puerto.
{
"k8s-experimental": {
"serviceOptions" : {
"type" : "ClusterIP"
}
}
}
No se puede crear o actualizar el rol de IoT
Descripción del problema
Al configurar el dispositivo IoT durante la instalación, es posible que vea el siguiente error:
(Código de estado Http: 400) No se pudo crear ni actualizar el rol de IoT en <NombreDeDispositivo>. Se produjo un error con el código: {NO_PARAM}. Para más información, consulte los detalles del código de error (https://aka.ms/dbe-error-codes). Si el error persiste, póngase en contacto con el servicio de soporte técnico de Microsoft.
Solución propuesta
Si el firewall del centro de datos restringe o filtra el tráfico en función de las direcciones MAC o IP de origen, asegúrese de que tanto las direcciones IP de proceso (direcciones IP del nodo de Kubernetes) como las direcciones MAC se encuentren en la lista de permitidos. Para especificar las direcciones MAC, ejecute el cmdlet Set-HcsMacAddressPool
en la interfaz de PowerShell del dispositivo.