Freigeben über


Schnellstart: Ausführen von Azure IoT Einsatz in GitHub Codespaces mit K3s

In dieser Schnellstartanleitung stellen Sie Azure IoT Einsatz in einem Azure Arc-fähigen Kubernetes-Cluster bereit, sodass Sie Ihre Geräte und Workloads remote verwalten können. Am Ende der Schnellstartanleitung verfügen Sie über einen Cluster, den Sie über die Cloud verwalten können. Die restlichen Schnellstarts in dieser umfassenden Reihe bauen für die Definition von Beispielressourcen, Datenverarbeitungspipelines und Visualisierungen auf diesem auf.

Vorbereitung

Diese Reihe von Schnellstarts soll Ihnen bei den ersten Schritten mit Azure IoT Einsatz so schnell wie möglich helfen, damit Sie ein End-to-End-Szenario auswerten können. In einer echten Entwicklungs- oder Produktionsumgebung führen mehrere Teams diese Aufgaben aus, und für einige Aufgaben sind möglicherweise erhöhte Berechtigungen erforderlich.

Für eine optimale neue Benutzererfahrung empfehlen wir die Verwendung eines Azure kostenlosen Kontos damit Sie über Besitzerberechtigungen für die Ressourcen in diesen Schnellstarts verfügen.

Wir verwenden GitHub Codespaces als virtuelle Umgebung für diese Schnellstartanleitung, damit Sie das Szenario testen können, ohne neue Tools auf Ihren eigenen Computern zu installieren. Wenn Sie jedoch Azure IoT Einsatz in einem lokalen Cluster auf Ubuntu oder Azure Kubernetes Service (AKS) bereitstellen möchten, lesen Sie Bereiten Sie Ihren Azure Arc-fähigen Kubernetes-Cluster.

Wichtig

Codespaces lassen sich später schnell einrichten und abreißen, eignen sich jedoch nicht für Produktions-, Leistungsbewertungs- oder Skalierungstests. Verwenden Sie GitHub Codespaces nur für die Erkundung.

Die Codespaces-Umgebung reicht aus, um die Schnellstartschritte auszuführen, unterstützt jedoch keine erweiterten Konfigurationen wie sichere Einstellungen. Diese Skripte finden Sie auf GitHub für eine einsatzbereite Bereitstellung mit sicheren Einstellungen.

Voraussetzungen

Bevor Sie beginnen, müssen folgende erforderliche Komponenten vorbereitet werden:

  • Ein Azure-Abonnement. Wenn Sie nicht über ein Azure-Abonnement verfügen, sie kostenlos erstellen bevor Sie beginnen.

  • Ein GitHubKonto.

  • Visual Studio Code auf Ihrem Entwicklungscomputer installiert. Weitere Informationen finden Sie unter Download Visual Studio Code.

  • Microsoft.Authorization/roleAssignments/write Berechtigungen auf Ressourcengruppenebene.

Welches Problem werden wir lösen?

Azure IoT Einsatz ist eine Suite von Datendiensten, die auf Kubernetes-Clustern ausgeführt werden. Sie möchten, dass diese Cluster remote über die Cloud verwaltet werden und sicher mit Cloudressourcen und Endpunkten kommunizieren können. Diese Punkte werden mithilfe der folgenden Aufgaben in dieser Schnellstartanleitung behandelt:

  1. Erstellen Sie einen Kubernetes-Cluster in GitHub Codespaces.
  2. Verbinden Sie den Cluster mit Azure Arc für die Remoteverwaltung.
  3. Erstellen einer Schemaregistrierung
  4. Stellen Sie Azure IoT Einsatz auf Ihrem Cluster bereit.

Erstellen eines Clusters

In diesem Abschnitt erstellen Sie ein neues Cluster. Wenn Sie einen Cluster wiederverwenden möchten, den Sie zuvor Azure IoT Einsatz bereitgestellt haben, lesen Sie die Schritte in Clean up resources, um Azure IoT Einsatz zu deinstallieren, bevor Sie fortfahren.

Der codespace Azure-Samples/explore-iot-operations ist vorkonfiguriert mit:

  • K3s in K3d für einen einfachen Kubernetes-Cluster
  • Azure CLI
  • Kubectl für die Verwaltung von Kubernetes-Ressourcen
  • Weitere praktische Tools wie Helm und k9s

Führen Sie die folgenden Schritte aus, um Codespace und Cluster zu erstellen:

  1. Erstellen Sie einen Codespace in GitHub Codespaces.

    Erstellen Sie ein explore-iot-operations-codespace

  2. Geben Sie die folgenden empfohlenen Geheimnisse für Ihren Codespace an:

    Parameter Wert
    SUBSCRIPTION_ID Ihre Azure-Abonnement-ID.
    Ressourcengruppe Ein Name für eine neue Azure Ressourcengruppe, in der Ihr Cluster erstellt wird.
    LAGERPLATZ Eine Azure Region in Ihrer Nähe. Die Liste der aktuell unterstützten Regionen finden Sie unter Unterstützte Regionen.

    Tipp

    Die Werte, die Sie als geheime Schlüssel in diesem Schritt angeben, werden in Ihrem GitHub Konto gespeichert, das in diesen und zukünftigen Codespaces verwendet werden soll. Sie werden als Umgebungsvariablen im Codespace-Terminal hinzugefügt, und Sie können diese Umgebungsvariablen in den CLI-Befehlen im nächsten Abschnitt verwenden.

    Darüber hinaus erstellt dieser Codespace die Umgebungsvariable CLUSTER_NAME, die mit dem Codespacenamen festgelegt wird.

  3. Wählen Sie Neuen Codespace erstellen aus.

  4. Wenn der Codespace bereit ist, können Sie links oben die Menüschaltfläche und anschließend In VS Code-Desktop öffnen auswählen.

    Screenshot: Öffnen des Codespace in VS Code-Desktop

  5. Wenn Sie dazu aufgefordert werden, installieren Sie die GitHub CodespacesErweiterung für Visual Studio Code, und melden Sie sich bei GitHub an.

  6. Wählen Sie in Visual Studio Code View>Terminal aus.

    Verwenden Sie dieses Terminal, um alle CLI-Befehle zum Verwalten Ihres Clusters auszuführen.

Verbinden des Clusters mit Azure Arc

So verbinden Sie Ihren Cluster mit Azure Arc:

  1. Melden Sie sich in Ihrem Codespace-Terminal bei Azure CLI an:

    az login
    

    Tipp

    Wenn Sie die GitHub Codespace-Umgebung in einem Browser anstelle von VS Code Desktop verwenden, gibt die Ausführung az login einen Localhost-Fehler zurück. So beheben Sie den Fehler:

    • Öffnen Sie den Codespace in VS Code-Desktop, kehren Sie dann zum Browserterminal zurück, und führen Sie az login erneut aus.
    • Oder nachdem Sie den localhost-Fehler im Browser erhalten haben, kopieren Sie die URL aus dem Browser und führen Sie curl "<URL>" in einem neuen Terminal-Tab aus. Sie werden eine JSON-Antwort mit der Meldung "Sie haben sich bei Microsoft Azure angemeldet!" sehen.
  2. Nachdem Sie sich angemeldet haben, zeigt Azure CLI alle Ihre Abonnements an und gibt Ihr Standardabonnement mit einem Sternchen * an. Um mit Ihrem Standardabonnement fortzufahren, wählen Sie Enter aus. Geben Sie andernfalls die Nummer des Azure Abonnements ein, das Sie verwenden möchten.

  3. Registrieren Sie die erforderlichen Ressourcenanbieter in Ihrem Abonnement:

    Tipp

    Dieser Schritt muss nur einmal pro Abonnement durchgeführt werden. Zum Registrieren von Ressourcenanbietern benötigen Sie die Berechtigung zum Ausführen des /register/action-Vorgangs, die in den Rollen „Mitwirkende“ und „Besitzer“ des Abonnements enthalten ist. Weitere Informationen finden Sie unter Azure Ressourcenanbieter und -typen.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperations"
    az provider register -n "Microsoft.DeviceRegistry"
    az provider register -n "Microsoft.SecretSyncController"
    
  4. Verwenden Sie den Befehl az group create, um eine Ressourcengruppe in Ihrem Azure-Abonnement zu erstellen, um alle Ressourcen zu speichern:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP
    
  5. Verwenden Sie den Befehl az connectedk8s connect, um Ihren Kubernetes-Cluster Arc-fähig zu machen und als Teil Ihrer Azure-Ressourcengruppe zu verwalten.

    az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
    

    Tipp

    Der Wert von $CLUSTER_NAME wird automatisch auf den Namen Ihres Codespace festgelegt. Ersetzen Sie die Umgebungsvariable, wenn Sie einen anderen Namen verwenden möchten.

  6. Rufen Sie die objectId der Microsoft Entra ID Anwendung ab, die der Azure Arc Dienst in Ihrem Mandanten verwendet, und speichern Sie ihn als Umgebungsvariable. Führen Sie den folgenden Befehl genau wie angegeben aus, ohne den GUID-Wert zu ändern.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. Verwenden Sie den Befehl az connectedk8s enable-features, um für Ihren Cluster die Unterstützung benutzerdefinierter Speicherorte zu aktivieren. Dieser Befehl verwendet den objectId der Microsoft Entra ID Anwendung, die der Azure Arc-Dienst verwendet. Führen Sie diesen Befehl auf dem Computer aus, auf dem Sie den Kubernetes-Cluster bereitgestellt haben:

    az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    

Installieren der neuesten Version von az iot ops

Diese Schnellstartanleitung verwendet die neueste Version von Azure IoT Einsatz. Um die neueste Version zu installieren, benötigen Sie die neueste Version der Azure IoT Einsatz CLI-Erweiterung:

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

Erstellen eines Speicherkontos und einer Schemaregistrierung

Die Schemaregistrierung ist ein synchronisiertes Repository, in dem Nachrichtendefinitionen sowohl in der Cloud als auch am Edge gespeichert werden. Azure IoT Einsatz erfordert eine Schemaregistrierung auf Ihrem Cluster. Für die Schemaregistrierung ist ein Azure Speicherkonto für die in der Cloud gespeicherten Schemainformationen erforderlich.

Der Befehl zum Erstellen einer Schemaregistrierung in diesem Abschnitt erfordert Microsoft. Authorization/roleAssignments/write Berechtigung auf Ressourcengruppenebene. Diese Berechtigung wird verwendet, um der Schemaregistrierung die Rolle „Mitwirkender“ zuzuweisen, damit sie in das Speicherkonto schreiben kann.

Führen Sie die folgenden CLI-Befehle in Ihrem Codespaces-Terminal aus.

  1. Legen Sie Umgebungsvariablen für die Ressourcen fest, die Sie in diesem Abschnitt erstellen.

    Platzhalter Wert
    <SPEICHERKONTO_NAME> Ein Name für Ihr Speicherkonto. Speicherkontonamen müssen zwischen 3 und 24 Zeichen lang sein und dürfen nur Zahlen und Kleinbuchstaben enthalten.
    <SCHEMA_REGISTRY_NAME> Ein Name für Ihre Schemaregistrierung. Schemaregistrierungsnamen dürfen nur Zahlen, Kleinbuchstaben und Bindestriche enthalten.
    <SCHEMA_REGISTRY_NAMESPACE> Ein Name für den Namespace Ihrer Schemaregistrierung. Der Namespace identifiziert eine Schemaregistrierung innerhalb eines Mandanten eindeutig. Namen der Schemaregistrierungsnamespaces dürfen nur Zahlen, Kleinbuchstaben und Bindestriche enthalten.
    STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
    
  2. Erstellen Sie ein Speicherkonto mit aktiviertem hierarchischen Namespace.

    az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
    
  3. Erstellen Sie eine Schemaregistrierung, die eine Verbindung mit Ihrem Speicherkonto herstellt. Mit diesem Befehl wird auch ein BLOB-Container namens schemas im Speicherkonto erstellt.

    az iot ops schema registry create --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP --registry-namespace $SCHEMA_REGISTRY_NAMESPACE --sa-resource-id $(az storage account show --name $STORAGE_ACCOUNT -o tsv --query id)
    

Erstellen eines Azure Device Registry-Namespaces

Azure IoT Einsatz und Azure Geräteregistrierung verwenden namespaces zum Organisieren von Ressourcen und Geräten. Jede Azure IoT Einsatz Instanz verwendet einen einzelnen Namespace für ihre Ressourcen und Geräte.

Führen Sie den folgenden CLI-Befehl aus, um einen Azure Device Registry-Namespace zu erstellen.

az iot ops ns create -n myqsnamespace -g $RESOURCE_GROUP

Implementieren von Azure IoT Einsatz

In diesem Abschnitt konfigurieren Sie Ihren Cluster mit den Abhängigkeiten für Ihre Azure IoT Einsatz-Komponenten, und stellen Sie dann Azure IoT Einsatz bereit.

Führen Sie die folgenden CLI-Befehle in Ihrem Codespaces-Terminal aus.

  1. Initialisieren Sie Ihren Cluster für Azure IoT Einsatz.

    Tipp

    Der Befehl init muss nur einmal pro Cluster ausgeführt werden. Wenn Sie einen Cluster verwenden, für den bereits die neueste Azure IoT Einsatz Version bereitgestellt wurde, können Sie diesen Schritt überspringen.

    az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
    

    Die Ausführung dieses Befehls kann mehrere Minuten dauern. Sie können den Fortschritt in der Bereitstellungsstatusanzeige im Terminal überwachen.

  2. Stellen Sie Azure IoT Einsatz bereit. Dieser Befehl enthält den optionalen Connector für OPC UA, den Sie in den folgenden Schnellstarts verwenden.

    az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id) --ns-resource-id $(az iot ops ns show --name myqsnamespace --resource-group $RESOURCE_GROUP -o tsv --query id) --broker-frontend-replicas 1 --broker-frontend-workers 1  --broker-backend-part 1  --broker-backend-workers 1 --broker-backend-rf 2 --broker-mem-profile Low  --feature opcua.mode=Stable
    

    Die Ausführung dieses Befehls kann mehrere Minuten dauern. Sie können den Fortschritt in der Bereitstellungsstatusanzeige im Terminal überwachen.

    Wenn ein Fehler angezeigt wird, der besagt, dass Ihr Gerät für den Zugriff auf Ihre Ressource verwaltet werden muss, führen Sie az login erneut aus, und stellen Sie sicher, dass Sie sich interaktiv mit einem Browser anmelden.

Anzeigen von Ressourcen im Cluster

Sobald die Bereitstellung abgeschlossen ist, können Sie kubectl-Befehle verwenden, um Änderungen am Cluster zu beobachten oder, da der Cluster arcfähig ist, das Azure-Portal verwenden.

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

kubectl get pods -n azure-iot-operations

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

  1. Wechseln Sie im portal Azure zur Ressourcengruppe, die Ihre Azure IoT Einsatz Instanz enthält, oder suchen Sie nach Azure IoT Einsatz.

  2. Wählen Sie den Namen Ihrer Azure IoT Einsatz Instanz aus.

  3. Wählen Sie auf der Seite Übersicht Ihrer Instanz die Registerkarte Ressourcenzusammenfassung aus, um den Bereitstellungsstatus der Ressourcen anzuzeigen, die in Ihrem Cluster bereitgestellt wurden.

    Screenshot, der die Azure IoT Einsatz Instanz auf Ihrem Arc-fähigen Cluster anzeigt.

Wie haben wir das Problem gelöst?

In dieser Schnellstartanleitung haben Sie Ihren Arc-fähigen Kubernetes-Cluster so konfiguriert, dass er sicher mit Ihren Azure IoT Einsatz Komponenten kommunizieren kann. Anschließend haben Sie diese Komponenten in Ihrem Cluster bereitgestellt. Für dieses Testszenario verfügen Sie über einen einzelnen Kubernetes-Cluster, der in Codespaces ausgeführt wird. In einem Produktionsszenario können Sie mit den gleichen Schritten Workloads für viele Cluster an zahlreichen Standorten bereitstellen.

Bereinigen von Ressourcen

Wenn Sie mit der nächsten Schnellstartanleitung fortfahren, sollten Sie alle Ihre Ressourcen beibehalten.

Wenn Sie die Azure IoT Einsatz Bereitstellung entfernen möchten, den Cluster jedoch beibehalten möchten, verwenden Sie den Befehl az iot ops delete:

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Wenn Sie alle Ressourcen löschen möchten, die Sie für diese Schnellstartanleitung erstellt haben, löschen Sie den Kubernetes-Cluster, in dem Sie Azure IoT Einsatz bereitgestellt haben, und entfernen Sie dann die Azure Ressourcengruppe, die den Cluster enthielt.

Wenn Sie Codespaces für diese Schnellstarts verwendet haben, löschen Sie Ihren Codespace aus GitHub.

Nächster Schritt