Compartir a través de


Problemas conocidos: Operaciones de IoT de Azure

En este artículo se enumeran los problemas conocidos para Operaciones de IoT de Azure.

Problemas de implementación y desinstalación

  • Si prefiere no tener actualizaciones realizadas en el clúster sin dar consentimiento explícito, debe deshabilitar las actualizaciones de Arc al habilitar el clúster. Esto se debe a que el agente de Arc actualiza automáticamente algunas extensiones del sistema. Para deshabilitar las actualizaciones, incluya la --disable-auto-upgrade marca como parte del az connectedk8s connect comando.

  • Si se produce un error en la implementación con el "code":"LinkedAuthorizationFailed"error, significa que no tiene permisos Microsoft.Authorization/roleAssignments/write en el grupo de recursos que contiene el clúster.

  • La edición directa de los recursos personalizados SecretProviderClass y SecretSync en el clúster de Kubernetes puede interrumpir el flujo de secretos en operaciones de Azure IoT. Para cualquier operación relacionada con secretos, use la interfaz de usuario de la experiencia de operaciones.

  • Durante y después de implementar Operaciones de IoT de Azure, es posible que vea advertencias sobre Unable to retrieve some image pull secrets (regcred) en los registros y eventos de Kubernetes. Estas advertencias se esperan y no afectan a la implementación y el uso de Operaciones de IoT de Azure.

  • Si se produce un error en la implementación con el mensaje Error occurred while creating custom resources needed by system extensions, ha encontrado un error esporádico conocido que se corregirá en una versión futura. Como solución alternativa, use el comando az iot ops delete con la marca --include-deps para eliminar las Operaciones de IoT de Azure del clúster. Cuando las Operaciones de Azure IoT y sus dependencias se eliminan del clúster, vuelva a intentar la implementación.

Agente de MQTT

  • Los recursos del corredor MQTT creados en el clúster mediante Kubernetes no son visibles en Azure Portal. Esto se espera porque administrar componentes de Operaciones de IoT de Azure mediante Kubernetes está en versión preliminary actualmente no se admite la sincronización de recursos desde el perímetro a la nube.

  • No se puede actualizar el recurso de corredor después de la implementación inicial. No puede realizar cambios de configuración en la cardinalidad, el perfil de memoria o el búfer de disco.

    Como solución alternativa, al implementar operaciones de Azure IoT con el comando az iot ops init, puede incluir el parámetro --broker-config-file con un archivo de configuración JSON para el agente MQTT. Para obtener más información, vea Configuración avanzada del agente MQTT y Configuración de la configuración básica del agente MQTT.

  • Si un corredor solo tiene una réplica de back-end (backendChain.redundancyFactor está establecida en 1), es posible que se produzca un error en la actualización de Operaciones de IoT de Azure. Solo actualice Operaciones de IoT de Azure si el agente tiene más de una réplica de back-end.

  • Aunque los diagnósticos del agente MQTT generen telemetría en su propio tema, es posible que siga recibiendo mensajes de la prueba automática al suscribirse al tema#.

  • Es posible que se produzca un error en la implementación si elcardinalidad y los valores de perfil de memoria están establecidos como demasiado grandes para el clúster. Para resolver este problema, establezca el recuento de réplicas en 1 y use un perfil de memoria más pequeño, como low.

  • No publique ni se suscriba a temas de sondeo de diagnóstico que empiecen por azedge/dmqtt/selftest. La publicación o suscripción a estos temas puede afectar a las comprobaciones de sondeo o de prueba automática, lo que da lugar a resultados no válidos. Los resultados no válidos pueden aparecer en los registros de sondeo de diagnóstico, las métricas o los paneles. Por ejemplo, es posible que vea el problema Error de comprobación de la ruta de acceso para el evento de sondeo con el tipo de operación "Publicar" en los registros de sondeo de diagnóstico.

Administración de redes en capas de Azure IoT (versión preliminar)

  • Si el servicio Layered Network Management no recibe una dirección IP cuando K3S se ejecuta en el host de Ubuntu, vuelva a instalar K3S sin el controlador de entrada traefik mediante la opción --disable=traefik.

    curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
    

    Para obtener más información, consulte Redes | K3s.

  • Si las consultas de DNS no se resuelven en la dirección IP esperada mientras se usa el servicio CoreDNS que se ejecuta a nivel de red secundaria, actualice a Ubuntu 22.04 y vuelva a instalar K3S.

Conector para OPC UA

  • Las definiciones de recursos de Azure Device Registry permiten usar números en la sección de atributos, mientras que el supervisor de OPC solo espera cadenas.

  • Al agregar un nuevo recurso con un nuevo perfil de punto de conexión de recurso al agente de OPC UA y desencadenar una reconfiguración, la implementación de los opc.tcp pods cambia para dar cabida a los nuevos montajes de secretos para el nombre de usuario y la contraseña. Si se produce un error en el nuevo montaje por algún motivo, el pod no se reinicia y, por tanto, el flujo anterior para los recursos configurados correctamente también se detiene.

  • El nombre del firmante y el URI de la aplicación deben coincidir exactamente con el certificado proporcionado. Dado que no hay ninguna validación cruzada, los errores podrían provocar que los servidores de OPC UA rechacen el certificado de aplicación.

  • Proporcionar un nuevo certificado de instancia de aplicación de OPC UA no válido después de una instalación correcta de AIO puede provocar errores de conexión. Para resolver el problema, elimine las instancias de Operaciones de IoT de Azure y reinicie la instalación.

Simulador de OPC PLC

Si crea un punto de conexión de recurso para el simulador de OPC PLC, pero el simulador de OPC PLC no envía datos al agente MQTT, ejecute el siguiente comando para establecer autoAcceptUntrustedServerCertificates=true para el punto de conexión del recurso:

ENDPOINT_NAME=<name-of-you-endpoint-here>
kubectl patch AssetEndpointProfile $ENDPOINT_NAME \
-n azure-iot-operations \
--type=merge \
-p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"'"$ENDPOINT_NAME"'\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'

Precaución

No use esta configuración en entornos de producción o preproducción. Exponer el clúster a Internet sin una autenticación adecuada podría resultar en accesos no autorizados e, incluso, ataques DDOS.

Puede aplicar revisiones a todos los puntos de conexión de recursos con el siguiente comando:

ENDPOINTS=$(kubectl get AssetEndpointProfile -n azure-iot-operations --no-headers -o custom-columns=":metadata.name")
for ENDPOINT_NAME in `echo "$ENDPOINTS"`; do \
kubectl patch AssetEndpointProfile $ENDPOINT_NAME \
   -n azure-iot-operations \
   --type=merge \
   -p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"'"$ENDPOINT_NAME"'\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'; \
done

Si el simulador de OPC PLC no envía datos al agente MQTT después de crear un nuevo recurso, reinicie el pod del simulador de OPC PLC. El nombre del pod es similar a aio-opc-opc.tcp-1-f95d76c54-w9v9c. Para reiniciar el pod, use la herramienta k9s para eliminar el pod o ejecute el siguiente comando:

kubectl delete pod aio-opc-opc.tcp-1-f95d76c54-w9v9c -n azure-iot-operations

Flujos de datos

  • Los recursos personalizados de flujo de datos creados en el clúster no están visibles en la interfaz de usuario de la experiencia de operaciones. Esto se espera porque administrar componentes de Operaciones de IoT de Azure mediante Kubernetes está en versión preliminary actualmente no se admite la sincronización de recursos desde el perímetro a la nube.

  • Todavía no se admite la autenticación X.509 para puntos de conexión personalizados de Kafka.

  • Todavía no se admite la deserialización y validación de mensajes mediante un esquema. Especificar un esquema en la configuración de origen solo permite que el portal de experiencia de operaciones muestre la lista de puntos de datos, pero los puntos de datos no se validan con el esquema.

  • La creación de un secreto X.509 en el portal de experiencia de operaciones da como resultado un secreto con datos codificados incorrectamente. Para solucionar este problema, cree los secretos de varias líneas a través de Azure Key Vaulty, a continuación, selecciónelos en la lista de secretos del portal de experiencia de operaciones.

  • Al conectar varias instancias de Operaciones de IoT al mismo espacio de nombres MQTT de Event Grid, pueden producirse errores de conexión debido a conflictos de Id. de cliente. Los identificadores de cliente se derivan actualmente de nombres de recursos de flujo de datos y, al usar patrones de infraestructura como código (IaC) para la implementación, los identificadores de cliente generados pueden ser idénticos. Como solución alternativa temporal, agregue aleatoriedad a los nombres de flujo de datos en las plantillas de implementación.