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 ook 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.

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

Azure IoT-bewerkingen kunnen worden geïmplementeerd in K3s op Ubuntu, Azure Kubernetes Service (AKS) Edge Essentials en AKS in Azure Local. Voor snelheid en gemak gebruikt deze quickstart echter GitHub Codespaces om uw cluster te hosten. Zie Uw Kubernetes-cluster met Azure Arc voorbereiden voor meer informatie over het implementeren van Azure IoT-bewerkingen in een cluster in Windows of Ubuntu.

Notitie

Codespaces zijn eenvoudig in te stellen en later te scheuren, maar ze zijn niet geschikt voor 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.

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:

    Parameter Weergegeven als
    SUBSCRIPTION_ID Uw Azure-abonnements-id.
    RESOURCE_GROUP 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.

    Tip

    De waarden die u als geheimen in deze stap opgeeft, worden opgeslagen in uw GitHub-account om in deze en toekomstige coderuimten 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
    

    Tip

    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 nu een JSON-antwoord met het bericht 'U bent 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:

    Notitie

    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
    

    Tip

    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
    

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.
    <SCHEMA_REGISTRY_NAMESPACE> Een naam voor uw schemaregisternaamruimte. De naamruimte identificeert een schemaregister in een tenant op unieke wijze.
    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)
    

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.

    Tip

    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) --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