Sdílet prostřednictvím


Známé problémy: Azure IoT Operations Preview

Důležité

Azure IoT Operations Preview – Služba Azure Arc je aktuálně ve verzi PREVIEW. Tento software ve verzi Preview byste neměli používat v produkčních prostředích.

Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.

Tento článek obsahuje seznam známých problémů se službou Azure IoT Operations Preview.

Problémy s nasazením a odinstalací

  • Interaktivní přihlášení az login k Azure CLI musíte použít při nasazování operací Azure IoT. Pokud ne, může se zobrazit chyba, například CHYBA: AADSTS530003: Pro přístup k tomuto prostředku se vyžaduje správa vašeho zařízení.

  • Pokud vaše nasazení selže s chybou "code":"LinkedAuthorizationFailed" , znamená to, že nemáte oprávnění Microsoft.Authorization/roleAssignments/write ve skupině prostředků, která obsahuje váš cluster.

    Pokud chcete tento problém vyřešit, požádejte o požadovaná oprávnění nebo proveďte následující úpravy kroků nasazení:

    • Pokud se nasazuje pomocí šablony Azure Resource Manageru, nastavte deployResourceSyncRules parametr na false.
    • Pokud nasazujete pomocí Azure CLI, zahrňte --disable-rsync-rules příznak příkazu az iot ops init .
  • Odinstalace K3s: Při odinstalaci k3s v Ubuntu pomocí /usr/local/bin/k3s-uninstall.sh skriptu může dojít k problému, kdy se skript zasekne při odpojování podu NFS. Alternativním řešením tohoto problému je spuštění následujícího příkazu před spuštěním skriptu odinstalace: sudo systemctl stop k3s.

Azure IoT MQ Preview

  • K výchozímu nasazení můžete přistupovat pouze pomocí IP adresy clusteru, protokolu TLS a tokenu účtu služby. Klienti mimo cluster potřebují před připojením další konfiguraci.

  • Po počátečním nasazení nemůžete aktualizovat vlastní prostředek zprostředkovatele. Nemůžete provádět změny konfigurace kardinality, profilu paměti nebo vyrovnávací paměti.

  • Velikost vyrovnávací paměti založené na disku nemůžete nakonfigurovat, pokud ji vybraná třída úložiště nepodporuje.

  • I když diagnostická služba IoT MQ vytváří telemetrii podle vlastního tématu, při přihlášení k # odběru tématu stále můžete dostávat zprávy z vlastního testu.

  • Některé clustery, které mají pomalé volání rozhraní API Kubernetes, můžou způsobit selhání příkazu ping selftest: Status {Failed}. Probe failed: Ping: 1/2 spuštění az iot ops check příkazu.

  • V protokolech událostí KafkaConnector StatefulSet může dojít k chybě, například Invalid value: "mq-to-eventhub-connector-<token>--connectionstring": must be no more than 63 characters. Ujistěte se, že název vašeho kafkaConnectoru má maximálně 5 znaků.

  • V protokolech konektoru Kafka a konektoru Event Gridu může dojít k chybám časového limitu. Navzdory tomu bude konektor dál fungovat a předávat zprávy.

Azure IoT Layered Network Management Preview

  • Pokud služba Správa vrstvené sítě při spouštění K3S na hostiteli Ubuntu nezíská IP adresu, pomocí této možnosti přeinstalujte K3S bez kontroleru --disable=traefik příchozího přenosu dat trafeik.

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

    Další informace naleznete v tématu Sítě | K3s.

  • Pokud se dotazy DNS nepřeloží na očekávanou IP adresu při používání služby CoreDNS spuštěné na úrovni podřízené sítě, upgradujte na Ubuntu 22.04 a znovu nainstalujte K3S.

Azure IoT OPC UA Broker Preview

  • Všechny AssetEndpointProfiles v clusteru musí být nakonfigurované se stejným ověřovacím certifikátem přenosu, jinak může zprostředkovatel OPC UA vykazovat náhodné chování. Pokud se chcete tomuto problému vyhnout při použití ověřování přenosu, nakonfigurujte všechny koncové body prostředků se stejným kryptografickým otiskem pro ověřovací certifikát přenosu na portálu Azure IoT Operations (Preview).

  • Pokud nasadíte do AssetEndpointProfile clusteru a zprostředkovatel OPC UA se nemůže připojit k nakonfigurovaným koncovým bodům při prvním pokusu, zprostředkovatel OPC UA se nikdy nebude pokoušet připojit.

    Jako alternativní řešení nejprve opravte problém s připojením. Pak buď restartujte všechny pody v clusteru s názvy podů, které začínají na "aio-opc-opc.tcp", nebo odstraňte a nasaďte AssetEndpointProfile ho znovu.

Simulátor OPC PLC

Pokud vytvoříte koncový bod prostředku pro simulátor OPC PLC, ale simulátor OPC PLC neodesílá data do zprostředkovatele IoT MQ, spuštěním následujícího příkazu nastavte autoAcceptUntrustedServerCertificates=true koncový bod prostředku:

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}}"}}'

Upozornění

Tuto konfiguraci nepoužívejte v produkčním nebo předprodukčním prostředí. Zveřejnění clusteru na internet bez správného ověřování může vést k neoprávněnému přístupu a dokonce útokům DDOS.

Všechny koncové body prostředku můžete opravit pomocí následujícího příkazu:

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

Pokud simulátor OPC PLC po vytvoření nového prostředku neodesílá data do zprostředkovatele IoT MQ, restartujte pod simulátorU OPC PLC. Název podu vypadá nějak aio-opc-opc.tcp-1-f95d76c54-w9v9ctakto. Pokud chcete pod restartovat, ukončete ho pomocí k9s nástroje nebo spusťte následující příkaz:

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

Azure IoT Data Processor Preview

  • Pokud u podů zpracovatele dat dojde k chybám nasazení, ujistěte se, že při vytváření služby Azure Key Vault jste jako model oprávnění zvolili zásady přístupu k trezoru.

  • Pokud se rozšíření zpracovatele dat neodinstaluje, spusťte následující příkazy a zkuste operaci odinstalace zopakovat:

    kubectl delete pod  aio-dp-reader-worker-0 --grace-period=0 --force -n azure-iot-operations
    kubectl delete pod  aio-dp-runner-worker-0 --grace-period=0 --force -n azure-iot-operations
    
  • Pokud u zpráv nejsou použity úpravy, které provedete v kanálu, spusťte následující příkazy, které tyto změny rozšíří:

    kubectl rollout restart deployment aio-dp-operator -n azure-iot-operations 
    
    kubectl rollout restart statefulset aio-dp-runner-worker -n azure-iot-operations 
    
    kubectl rollout restart statefulset aio-dp-reader-worker -n azure-iot-operations
    
  • Je možné, že momentální ztráta komunikace s pody zprostředkovatele IoT MQ může pozastavit zpracování datových kanálů. Může se také zobrazit chyba, například service account token expired. Pokud si všimnete, že k tomu dochází, spusťte následující příkazy:

    kubectl rollout restart statefulset aio-dp-runner-worker -n azure-iot-operations
    kubectl rollout restart statefulset aio-dp-reader-worker -n azure-iot-operations
    
  • Pokud jsou data poškozená v tabulce Microsoft Fabric Lakehouse, do které váš kanál zpracovatele dat zapisuje, ujistěte se, že do tabulky nezapisují žádné jiné procesy. Pokud zapíšete do tabulky Microsoft Fabric Lakehouse z více zdrojů, může se v tabulce zobrazit poškozená data.

Azure IoT Akri Preview

Sporadický problém může způsobit restartování podu aio-opc-asset-discovery s následující chybou v protokolech: opcua@311 exception="System.IO.IOException: Failed to bind to address http://unix:/var/lib/akri/opcua-asset.sock: address already in use..

Chcete-li tento problém vyřešit, pomocí následujících kroků aktualizujte specifikaci daemonSet :

  1. Vyhledejte cílový vlastní prostředek poskytnutý orchestration.iotoperations.azure.com názvem, který má na konci-ops-init-target:

    kubectl get targets -n azure-iot-operations
    
  2. Upravte cílovou konfiguraci a najděte spec.components.aio-opc-asset-discovery.properties.resource.spec.template.spec.containers.env parametr. Příklad:

    kubectl edit target solid-zebra-97r6jr7rw43vqv-ops-init-target -n azure-iot-operations
    
  3. Do části konfigurace přidejte následující proměnné spec.components.aio-opc-asset-discovery.properties.resource.spec.template.spec.containers.env prostředí:

    - name: ASPNETCORE_URLS 
      value: http://+8443 
    - name: POD_IP 
      valueFrom: 
        fieldRef: 
          fieldPath: "status.podIP" 
    
  4. Uložte provedené změny. Konečná specifikace vypadá jako v následujícím příkladu:

    apiVersion: orchestrator.iotoperations.azure.com/v1 
    kind: Target 
    metadata: 
      name: <cluster-name>-target 
      namespace: azure-iot-operations 
    spec: 
      displayName: <cluster-name>-target 
      scope: azure-iot-operations 
      topologies: 
      ...
      version: 1.0.0.0 
      components: 
        ... 
        - name: aio-opc-asset-discovery 
          type: yaml.k8s 
          properties: 
            resource: 
              apiVersion: apps/v1 
              kind: DaemonSet 
              metadata: 
                labels: 
                  app.kubernetes.io/part-of: aio 
                name: aio-opc-asset-discovery 
              spec: 
                selector: 
                  matchLabels: 
                    name: aio-opc-asset-discovery 
                template: 
                  metadata: 
                    labels: 
                      app.kubernetes.io/part-of: aio 
                      name: aio-opc-asset-discovery 
                  spec: 
                    containers: 
                      - env: 
                          - name: ASPNETCORE_URLS 
                            value: http://+8443 
                          - name: POD_IP 
                            valueFrom: 
                              fieldRef: 
                                fieldPath: status.podIP 
                          - name: DISCOVERY_HANDLERS_DIRECTORY 
                            value: /var/lib/akri 
                          - name: AKRI_AGENT_REGISTRATION 
                            value: 'true' 
                        image: >- 
                          edgeappmodel.azurecr.io/opcuabroker/discovery-handler:0.4.0-preview.3 
                        imagePullPolicy: Always 
                        name: aio-opc-asset-discovery 
                        ports: ... 
                        resources: ...
                        volumeMounts: ...
                    volumes: ...
    

Portál Azure IoT Operations Preview

Pokud se chcete přihlásit k portálu Azure IoT Operations Portal, potřebujete účet ID Microsoft Entra s alespoň oprávněními přispěvatele pro skupinu prostředků, která obsahuje vaši instanci Kubernetes – Azure Arc . Nemůžete se přihlásit pomocí účtu Microsoft (MSA). Vytvoření účtu v tenantovi Azure:

  1. Přihlaste se k webu Azure Portal pomocí stejného tenanta a uživatelského jména, které jste použili k nasazení operací Azure IoT.
  2. Na webu Azure Portal přejděte do části Microsoft Entra ID a vyberte Uživatelé > + Nový uživatel Vytvořit nového uživatele>. Vytvořte nového uživatele a poznamenejte si heslo, budete ho potřebovat k pozdějšímu přihlášení.
  3. Na webu Azure Portal přejděte do skupiny prostředků, která obsahuje vaši instanci Kubernetes – Azure Arc . Na stránce Řízení přístupu (IAM) vyberte +Přidat > přiřazení role.
  4. Na stránce Přidat přiřazení role vyberte role privilegovaného správce. Pak vyberte Přispěvatel a pak vyberte Další.
  5. Na stránce Členové přidejte nového uživatele do role.
  6. Výběrem možnosti Zkontrolovat a přiřadit dokončete nastavení nového uživatele.

Teď se můžete pomocí nového uživatelského účtu přihlásit k portálu Azure IoT Operations Portal.