Delen via


Quickstart: Azure IoT-bewerkingen uitvoeren in GitHub Codespaces met K3s

In deze quickstart implementeert u Azure IoT Operations in een Kubernetes-cluster met Azure Arc, zodat u uw apparaten en workloads op afstand kunt beheren. Aan het einde van de quickstart hebt u een cluster dat u vanuit de cloud kunt beheren. De rest van de quickstarts in deze end-to-end-reeks bouwen voort op deze reeks om voorbeeldassets, pijplijnen voor gegevensverwerking en visualisaties te definiëren.

Voordat u begint

Deze reeks quickstarts is bedoeld om u zo snel mogelijk te helpen aan de slag te gaan met Azure IoT Operations, zodat u een end-to-end scenario kunt evalueren. In een echte ontwikkel- of productieomgeving voeren meerdere teams die samenwerken deze taken uit. Voor sommige taken zijn mogelijk verhoogde machtigingen vereist.

Voor de beste nieuwe gebruikerservaring raden we u aan een gratis Azure-account te gebruiken, zodat u eigenaarsmachtigingen hebt voor de resources in deze quickstarts.

We gebruiken GitHub Codespaces als een virtuele omgeving voor deze quickstart, zodat u het scenario kunt testen zonder nieuwe hulpprogramma's op uw eigen machines te installeren. Als u Azure IoT Operations echter wilt implementeren in een lokaal cluster op Ubuntu of Azure Kubernetes Service (AKS), raadpleegt u Uw Kubernetes-cluster met Azure Arc voorbereiden.

Belangrijk

Codespaces zijn eenvoudig in te stellen en later af te breken, maar ze zijn niet geschikt voor productie-, prestatie-evaluatie of schaaltests. Gebruik Alleen GitHub Codespaces voor verkenning.

De Codespaces-omgeving is voldoende om de quickstartstappen te voltooien, maar biedt geen ondersteuning voor geavanceerde configuraties, zoals beveiligde instellingen.

Vereisten

Voordat u begint, moet u de volgende vereisten voorbereiden:

  • Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u er gratis een maken voordat u begint.

  • Een GitHub-account.

  • Visual Studio Code is geïnstalleerd op uw ontwikkelcomputer. Zie Visual Studio Code downloaden voor meer informatie.

  • Microsoft.Authorization/roleAssignments/write-machtigingen op het niveau van de resourcegroep.

Welk probleem gaan we oplossen?

Azure IoT Operations is een suite met gegevensservices die worden uitgevoerd op Kubernetes-clusters. U wilt dat deze clusters extern worden beheerd vanuit de cloud en veilig kunnen communiceren met cloudresources en -eindpunten. Deze problemen worden aangepakt met de volgende taken in deze quickstart:

  1. Maak een Kubernetes-cluster in GitHub Codespaces.
  2. Verbind het cluster met Azure Arc voor extern beheer.
  3. Maak een schemaregister.
  4. Azure IoT-bewerkingen implementeren in uw cluster.

Cluster maken

In deze sectie maakt u een nieuw cluster. Als u een cluster waarnaar u Azure IoT Operations eerder hebt geïmplementeerd opnieuw wilt gebruiken, raadpleegt u de stappen in Resources opschonen om Azure IoT Operations te verwijderen voordat u doorgaat.

De Codespace Azure-Samples/explore-iot-operations is vooraf geconfigureerd met:

  • K3's die worden uitgevoerd in K3d voor een lichtgewicht Kubernetes-cluster
  • Azure-CLI
  • Kubectl voor het beheren van Kubernetes-resources
  • Andere handige hulpprogramma's zoals Helm en k9s

Gebruik de volgende stappen om uw codespace en cluster te maken:

  1. Maak een codespace in GitHub Codespaces.

    Een explore-iot-operations-codespace maken

  2. Geef de volgende aanbevolen geheimen op voor uw codespace:

    Kenmerk Weergegeven als
    ABONNEMENT_ID Uw Azure-abonnements-id.
    Hulpbronnengroep Een naam voor een nieuwe Azure-resourcegroep waarin uw cluster wordt gemaakt.
    LOCATIE Een Azure-regio dicht bij u in de buurt. Zie Ondersteunde regio's voor de lijst met momenteel ondersteunde regio's.

    Aanbeveling

    De waarden die u als geheimen in deze stap opgeeft, worden opgeslagen in uw GitHub-account om in deze en toekomstige Codespaces te worden gebruikt. Ze worden toegevoegd als omgevingsvariabelen in de codespace-terminal en u kunt deze omgevingsvariabelen gebruiken in de CLI-opdrachten in de volgende sectie.

    Daarnaast maakt deze coderuimte een CLUSTER_NAME omgevingsvariabele die is ingesteld met de naam van de coderuimte.

  3. Selecteer Nieuwe coderuimte maken.

  4. Zodra de codespace gereed is, selecteert u de menuknop linksboven en selecteert u Openen in VS Code Desktop.

    Schermopname van het openen van de coderuimte in VS Code Desktop.

  5. Als u hierom wordt gevraagd, installeert u de GitHub Codespaces-extensie voor Visual Studio Code en meldt u zich aan bij GitHub.

  6. Selecteer Terminal weergeven> in Visual Studio Code.

    Gebruik deze terminal om alle CLI-opdrachten uit te voeren voor het beheren van uw cluster.

Cluster verbinden met Azure Arc

Uw cluster verbinden met Azure Arc:

  1. Meld u in uw codespace-terminal aan bij Azure CLI:

    az login
    

    Aanbeveling

    Als u de GitHub-coderuimteomgeving in een browser gebruikt in plaats van vs Code desktop, retourneert de uitvoering az login een localhost-fout. U kunt de fout als volgt oplossen:

    • Open de codespace in het bureaublad van VS Code en ga terug naar de browserterminal en voer deze opnieuw uit az login.
    • Of nadat u de localhost-fout in de browser hebt weergegeven, kopieert u de URL vanuit de browser en voert u deze uit curl "<URL>" op een nieuw terminaltabblad. U ziet een JSON-antwoord met het bericht 'U hebt aangemeld bij Microsoft Azure!'
  2. Nadat u zich hebt aangemeld, worden al uw abonnementen in Azure CLI weergegeven en wordt uw standaardabonnement met een sterretje *aangegeven. Als u wilt doorgaan met uw standaardabonnement, selecteert u Enter. Typ anders het nummer van het Azure-abonnement dat u wilt gebruiken.

  3. Registreer de vereiste resourceproviders in uw abonnement:

    Aanbeveling

    Deze stap hoeft slechts één keer per abonnement te worden uitgevoerd. Als u resourceproviders wilt registreren, moet u gemachtigd zijn om de /register/action bewerking uit te voeren, die is opgenomen in de rollen Inzender en Eigenaar van het abonnement. Zie Azure-resourceproviders en -typen voor meer informatie.

    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. Gebruik de opdracht az group create om een resourcegroep in uw Azure-abonnement te maken om alle resources op te slaan:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP
    
  5. Gebruik de opdracht az connectedk8s connect to Arc-enable your Kubernetes cluster and manage it as part of your Azure resource group:

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

    Aanbeveling

    De waarde van $CLUSTER_NAME wordt automatisch ingesteld op de naam van uw codespace. Vervang de omgevingsvariabele als u een andere naam wilt gebruiken.

  6. Haal de objectId Microsoft Entra ID-toepassing op die door de Azure Arc-service in uw tenant wordt gebruikt en sla deze op als een omgevingsvariabele. Voer de volgende opdracht precies uit zoals geschreven, zonder de GUID-waarde te wijzigen.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. Gebruik de opdracht az connectedk8s enable-features om ondersteuning voor aangepaste locaties in uw cluster in te schakelen. Deze opdracht maakt gebruik van de objectId Microsoft Entra ID-toepassing die door de Azure Arc-service wordt gebruikt. Voer deze opdracht uit op de computer waarop u het Kubernetes-cluster hebt geïmplementeerd:

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

Installeer de nieuwste versie van az iot ops

In deze quickstart wordt de nieuwste versie van Azure IoT Operations gebruikt. Als u de nieuwste versie wilt installeren, hebt u de nieuwste versie van de Azure IoT Operations CLI-extensie nodig:

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

Opslagaccount en schemaregister maken

Schemaregister is een gesynchroniseerde opslagplaats waarin berichtdefinities zowel in de cloud als aan de rand worden opgeslagen. Azure IoT Operations vereist een schemaregister in uw cluster. Schemaregister vereist een Azure-opslagaccount voor de schemagegevens die zijn opgeslagen in de cloud.

Voor de opdracht voor het maken van een schemaregister in deze sectie is Microsoft.Authorization/roleAssignments/write-machtiging vereist op het niveau van de resourcegroep. Deze machtiging wordt gebruikt om het schemaregister een inzenderrol te geven, zodat deze naar het opslagaccount kan schrijven.

Voer de volgende CLI-opdrachten uit in uw Codespaces-terminal.

  1. Stel omgevingsvariabelen in voor de resources die u in deze sectie maakt.

    Tijdelijke aanduiding Weergegeven als
    <STORAGE_ACCOUNT_NAME> Een naam voor uw opslagaccount. Namen van opslagaccounts moeten tussen de 3 en 24 tekens lang zijn en mogen alleen cijfers en kleine letters bevatten.
    <SCHEMA_REGISTRY_NAME> Een naam voor het schemaregister. Schemaregisternamen kunnen alleen cijfers, kleine letters en afbreekstreepjes bevatten.
    <SCHEMA_REGISTRY_NAMESPACE> Een naam voor uw schemaregisternaamruimte. De naamruimte identificeert een schemaregister in een tenant op unieke wijze. Namen van schemaregisternaamruimten kunnen alleen cijfers, kleine letters en afbreekstreepjes bevatten.
    STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
    
  2. Maak een opslagaccount waarvoor hiërarchische naamruimte is ingeschakeld.

    az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
    
  3. Maak een schemaregister dat verbinding maakt met uw opslagaccount. Met deze opdracht maakt u ook een blobcontainer met de naam schema's in het opslagaccount.

    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)
    

Een Azure Device Registry-naamruimte maken

Azure IoT Operations en Azure Device Registry gebruiken naamruimten om assets en apparaten te organiseren. Elk Azure IoT Operations-exemplaar maakt gebruik van één naamruimte voor de assets en apparaten.

Voer de volgende CLI-opdracht uit om een Azure Device Registry-naamruimte te maken.

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

Azure IoT-bewerkingen implementeren

In deze sectie configureert u uw cluster met de afhankelijkheden voor uw Azure IoT Operations-onderdelen en implementeert u Vervolgens Azure IoT Operations.

Voer de volgende CLI-opdrachten uit in uw Codespaces-terminal.

  1. Initialiseer uw cluster voor Azure IoT-bewerkingen.

    Aanbeveling

    De init opdracht hoeft slechts eenmaal per cluster te worden uitgevoerd. Als u een cluster hergebruikt waarop al de nieuwste Versie van Azure IoT Operations is geïmplementeerd, kunt u deze stap overslaan.

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

    Het uitvoeren van deze opdracht kan enkele minuten in beslag nemen. U kunt de voortgang bekijken in de voortgang van de implementatie in de terminal.

  2. Azure IoT-bewerkingen implementeren.

    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
    

    Het uitvoeren van deze opdracht kan enkele minuten in beslag nemen. U kunt de voortgang bekijken in de voortgang van de implementatie in de terminal.

    Als u een foutbericht krijgt met de mededeling dat uw apparaat moet worden beheerd voor toegang tot uw resource, voert u deze opnieuw uit az login en zorgt u ervoor dat u zich interactief aanmeldt met een browser.

Resources in cluster weergeven

Zodra de implementatie is voltooid, kunt u kubectl-opdrachten gebruiken om wijzigingen in het cluster te observeren of, omdat het cluster is ingeschakeld voor Arc, kunt u Azure Portal gebruiken.

Voer de volgende opdracht uit om de pods in uw cluster weer te geven:

kubectl get pods -n azure-iot-operations

Gebruik de volgende stappen om uw resources weer te geven in Azure Portal:

  1. Ga in Azure Portal naar de resourcegroep die uw Azure IoT Operations-exemplaar bevat of zoek en selecteer Azure IoT Operations.

  2. Selecteer de naam van uw Azure IoT Operations-exemplaar.

  3. Selecteer op de pagina Overzicht van uw exemplaar het tabblad Resourceoverzicht om de inrichtingsstatus weer te geven van de resources die zijn geïmplementeerd in uw cluster.

    Schermopname van het Azure IoT Operations-exemplaar in uw Cluster met Arc.

Hoe hebben we het probleem opgelost?

In deze quickstart hebt u uw Kubernetes-cluster met Arc geconfigureerd, zodat het veilig kan communiceren met uw Azure IoT Operations-onderdelen. Vervolgens hebt u deze onderdelen geïmplementeerd in uw cluster. Voor dit testscenario hebt u één Kubernetes-cluster dat wordt uitgevoerd in Codespaces. In een productiescenario kunt u echter dezelfde stappen gebruiken om workloads op veel clusters op veel sites te implementeren.

Resources opschonen

Als u doorgaat met de volgende quickstart, houdt u al uw resources bij.

Als u de Implementatie van Azure IoT Operations wilt verwijderen, maar uw cluster wilt behouden, gebruikt u de opdracht az iot ops delete :

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

Als u alle resources wilt verwijderen die u voor deze quickstart hebt gemaakt, verwijdert u het Kubernetes-cluster waarin u Azure IoT Operations hebt geïmplementeerd en verwijdert u vervolgens de Azure-resourcegroep die het cluster bevat.

Als u Codespaces voor deze quickstarts hebt gebruikt, verwijdert u uw Codespace uit GitHub.

Volgende stap