Share via


Bereitstellen der Erweiterungen von Azure IoT Einsatz (Vorschau) in einem Kubernetes-Cluster

Wichtig

Die von Azure Arc aktivierte Azure IoT Operations Preview befindet sich derzeit in der VORSCHAU. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Bereitstellen der Azure IoT Operations Preview auf einem Kubernetes-Cluster mithilfe der Azure CLI. Sobald Sie Azure IoT Einsatz bereitgestellt haben, können Sie den Azure IoT Orchestrator-Dienst (Vorschau) verwenden, um andere Workloads in Ihrem Cluster zu verwalten und bereitzustellen.

Voraussetzungen

Cloudressourcen:

  • Ein Azure-Abonnement.

  • Zugriffsberechtigungen in Azure. Sie brauchen mindestens die Berechtigung Mitwirkender in Ihrem Azure-Abonnement. Je nach ausgewähltem Status des Bereitstellungsfeatures benötigen Sie möglicherweise auch Microsoft/Authorization/roleAssignments/Write-Berechtigungen für die Ressourcengruppe, die Ihren Arc-fähigen Kubernetes-Cluster enthält. Sie können eine benutzerdefinierte Rolle in der rollenbasierten Azure-Zugriffssteuerung erstellen oder eine integrierte Rolle zuweisen, die diese Berechtigung gewährt. Weitere Informationen finden Sie unter den integrierten Azure-Rollen für Allgemein.

    Wenn Sie keine Berechtigungen zum Schreiben von Rollenzuweisungen haben, können Sie Azure IoT Operations weiterhin bereitstellen, indem Sie einige Features deaktivieren. Dieser Ansatz wird im Abschnitt Erweiterungen bereitstellen dieses Artikels ausführlicher erläutert.

    • Verwenden Sie in der Azure CLI den Befehl az Rollenzuweisung erstellen, um Berechtigungen zu erteilen. Beispiel: az role assignment create --assignee sp_name --role "Role Based Access Control Administrator" --scope subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup

    • Im Azure-Portal werden Sie aufgefordert, den Zugriff mithilfe von Bedingungen einzuschränken, wenn Sie einem Benutzer oder Prinzipal privilegierte Administratorrollen zuweisen. Wählen Sie für dieses Szenario Benutzer erlauben, alle Rollen zuzuweisen auf der Seite Rollenzuweisung hinzufügen.

      Screenshot der Zuweisung von Benutzern mit hoher Berechtigung im Azure-Portal.

  • Ein Azure Key Vault, bei dem das Berechtigungsmodell auf Vault-Zugriffsrichtlinie eingestellt ist. Sie können diese Einstellung im Bereich Zugriffskonfiguration eines vorhandenen Schlüsseltresors überprüfen. Wenn Sie einen neuen Schlüsseltresor erstellen müssen, verwenden Sie den Befehl az Schlüsseltresor erstellen:

    az keyvault create --enable-rbac-authorization false --name "<KEYVAULT_NAME>" --resource-group "<RESOURCE_GROUP>"
    

Entwicklungsressourcen:

  • Installation der Azure CLI auf Ihrem Entwicklungscomputer. Weitere Informationen finden Sie unter Installieren der Azure CLI. Für diesen Fall ist mindestens die Version 2.46.0 der Azure CLI erforderlich. Verwenden Sie az --version, um Ihre Version zu überprüfen. Bei Bedarf können Sie sie mithilfe von az upgrade aktualisieren.

  • Die Azure IoT Einsatz-Erweiterung für die Azure CLI. Verwenden Sie den folgenden Befehl, um die Erweiterung hinzuzufügen oder auf die neueste Version zu aktualisieren:

    az extension add --upgrade --name azure-iot-ops
    

Ein Clusterhost:

  • Einen Azure Arc-fähigen Kubernetes-Cluster. Wenn Sie dies nicht getan haben, führen Sie die Schritte in Vorbereiten Ihres Azure Arc-fähigen Kubernetes-Clusters aus.

    Wenn Sie Azure IoT Einsatz bereits in Ihrem Cluster bereitgestellt haben, deinstallieren Sie diese Ressourcen, bevor Sie fortfahren. Weitere Informationen finden Sie unter Aktualisieren einer Bereitstellung.

    Azure IoT Einsatz sollte auf jedem CNCF-konformen Kubernetes-Cluster funktionieren. Derzeit unterstützt Microsoft nur K3s auf Ubuntu Linux und WSL bzw. AKS Edge Essentials auf Windows. Die Verwendung von Ubuntu im Windows-Subsystem für Linux (WSL) ist der einfachste Weg, um einen Kubernetes-Cluster für Tests zu erhalten.

    Verwenden Sie die Azure IoT Operations-Erweiterung für Azure CLI, um zu überprüfen, ob Ihr Clusterhost ordnungsgemäß für die Bereitstellung konfiguriert ist, indem Sie auf dem Clusterhost den Befehl verify-host aufrufen:

    az iot ops verify-host
    

Bereitstellen von Erweiterungen

Verwenden Sie die Azure CLI, um Azure IoT Einsatz-Komponenten für Ihren Arc-fähigen Kubernetes-Cluster bereitzustellen.

  1. Melden Sie sich interaktiv mit einem Browser bei Azure CLI an, auch wenn Sie sich bereits zuvor angemeldet haben. Wenn Sie sich nicht interaktiv anmelden, wird möglicherweise eine Fehlermeldung angezeigt, die besagt: Ihr Gerät muss für den Zugriff auf Ihre Ressource verwaltet werden, wenn Sie mit dem nächsten Schritt zur Bereitstellung von Azure IoT Operations fortfahren.

    az login
    

    Hinweis

    Wenn Sie GitHub Codespaces in einem Browser verwenden, gibt az login nach der Anmeldung einen Localhost-Fehler im Browserfenster zurück. Führen zur Behebung eine der folgenden Maßnahmen durch:

    • Öffnen Sie den Codespace in VS Code Desktop und führen Sie dann az login erneut im Terminal aus. Dadurch wird ein Browserfenster geöffnet, in dem Sie sich bei Azure anmelden können.
    • Oder, nachdem Sie den Localhost-Fehler im Browser erhalten haben, kopieren Sie die URL aus dem Browser und verwenden Sie curl <URL> in einer neuen Terminal-Registerkarte. Sie sollten eine JSON-Antwort mit der Meldung „Sie haben sich bei Microsoft Azure angemeldet!“ sehen.
  2. Stellen Sie Azure IoT Einsatz in Ihrem Cluster bereit. Verwenden Sie optionale Flags, um den Befehl az iot ops init an Ihr Szenario anzupassen.

    Standardmäßig führt der az iot ops init Befehl die folgenden Aktionen aus, von denen einige erfordern, dass der bei der CLI angemeldete Prinzipal über erhöhte Berechtigungen verfügt:

    • Richten Sie einen Dienstprinzipal und eine App-Registrierung ein, um Ihrem Cluster Zugriff auf den Schlüsseltresor zu gewähren.
    • Konfigurieren Sie TLS-Zertifikate.
    • Konfigurieren Sie einen geheimen Speicher auf Ihrem Cluster, der eine Verbindung mit dem Schlüsseltresor herstellt.
    • Bereitstellen der Azure IoT Einsatz-Ressourcen.
    az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --kv-id <KEYVAULT_ID>
    

    Wenn Sie nicht über Microsoft.Authorization/roleAssignment/Write-Berechtigungen in der Ressourcengruppe verfügen, fügen Sie das --disable-rsync-rules Feature-Flag hinzu. Mit diesem Flag werden die Ressourcensynchronisierungsregeln für die Bereitstellung deaktiviert.

    Wenn Sie einen vorhandenen Dienstprinzipal und eine App-Registrierung verwenden möchten, anstatt init zu erlauben, neue zu erstellen, schließen Sie die Parameter --sp-app-id,--sp-object-id und --sp-secret ein. Weitere Informationen finden Sie unter Manuelles Konfigurieren von Dienstprinzipal und Key Vault.

  3. Nach Abschluss der Bereitstellung können Sie az iot ops check verwenden, um die Bereitstellung des IoT Operations-Diensts für Integrität, Konfiguration und Nutzbarkeit zu bewerten. Der Befehl Überprüfen kann Ihnen helfen, Probleme in Ihrer Bereitstellung und Konfiguration zu finden.

    az iot ops check
    

    Sie können auch die Konfigurationen von Themenzuordnungen, QoS- und Nachrichtenrouten überprüfen, indem Sie den --detail-level 2 Parameter für eine ausführliche Ansicht hinzufügen.

Konfigurieren von Clusternetzwerken (AKS EE)

Aktivieren Sie auf AKS Edge Essentials eingehende Verbindungen mit dem Azure IoT MQ-Broker (Vorschau), und konfigurieren Sie die Portweiterleitung:

  1. Aktivieren Sie eine Firewallregel für Port 8883:

    New-NetFirewallRule -DisplayName "Azure IoT MQ" -Direction Inbound -Protocol TCP -LocalPort 8883 -Action Allow
    
  2. Führen Sie den folgenden Befehl aus und notieren Sie sich die IP-Adresse für den Dienst aio-mq-dmqtt-frontend:

    kubectl get svc aio-mq-dmqtt-frontend -n azure-iot-operations -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  3. Aktivieren Sie die Portweiterleitung für Port 8883. Ersetzen Sie <aio-mq-dmqtt-frontend IP address> durch die im vorherigen Schritt notierte IP-Adresse:

    netsh interface portproxy add v4tov4 listenport=8883 listenaddress=0.0.0.0 connectport=8883 connectaddress=<aio-mq-dmqtt-frontend IP address>
    

Anzeigen von Ressourcen in Ihrem Cluster

Während die Bereitstellung läuft, können Sie beobachten, wie die Ressourcen auf Ihren Cluster angewendet werden. Sie können kubectl-Befehle verwenden, um Änderungen im Cluster zu beobachten, oder das Azure-Portal verwenden, da der Cluster über Arc-Unterstützung verfügt.

Führen Sie den folgenden Befehl aus, um die Pods in Ihrem Cluster anzuzeigen:

kubectl get pods -n azure-iot-operations

Es kann einige Minuten dauern, bis die Bereitstellung abgeschlossen ist. Führen Sie den get pods Befehl erneut aus, um die Ansicht zu aktualisieren.

Führen Sie die folgenden Schritte aus, um Ihren Cluster im Azure-Portal anzuzeigen:

  1. Navigieren Sie im Azure-Portal zu der Ressourcengruppe mit Ihrem Cluster.

  2. Wählen Sie in der Übersicht der Ressourcengruppe den Namen des Clusters aus.

  3. Wählen Sie im Menü des Clusters die Option Erweiterungen aus.

    Sie sehen, dass in Ihrem Cluster Erweiterungen vom Typ microsoft.iotoperations.x ausgeführt werden. Dies ist der Gruppenname für alle Komponenten von Azure IoT Einsatz und für den Orchestrierungsdienst.

    Es gibt auch eine Erweiterung mit dem Namen akvsecretsprovider. Diese Erweiterung ist der Geheimnisanbieter, den Sie mit dem Befehl az iot ops init in Ihrem Cluster konfiguriert und installiert haben. Sie können die Komponenten von Azure IoT Einsatz während der Testphase löschen und neu installieren. Behalten Sie aber die Erweiterung für den Geheimnisanbieter in Ihrem Cluster bei.

Tipp

Sie können az iot ops check ausführen, um die Integrität und Konfiguration der bereitgestellten AIO-Workloads zu bewerten. Standardmäßig werden MQ einschließlich Cloudconnectors bewertet, und Sie können --ops-service --svc verwenden, um den Dienst anzugeben.

Aktualisieren einer Bereitstellung

Derzeit wird die Aktualisierung einer vorhandenen Bereitstellung in Azure IoT Einsatz nicht unterstützt. Beginnen Sie stattdessen mit einem sauberen Cluster für eine neue Bereitstellung.

Wenn Sie die Bereitstellung in Azure IoT Einsatz auf Ihrem Cluster löschen möchten, damit Sie sie erneut bereitstellen können, navigieren Sie im Azure-Portal zu Ihrem Cluster. Wählen Sie die Erweiterungen vom Typ microsoft.iotoperations.x und microsoft.deviceregistry.assets und anschließend die Option Deinstallieren aus. Speichern Sie den Anbieter des Geheimnisses in Ihrem Cluster, da dies eine Voraussetzung für die Bereitstellung ist und nicht in einer neuen Bereitstellung enthalten.

Nächste Schritte

Wenn Ihre Komponenten eine Verbindung mit Azure-Endpunkten wie SQL oder Fabric herstellen müssen, informieren Sie sich über die Verwalten von Geheimnissen für Ihre Bereitstellung von Azure IoT Einsatz (Vorschau).