Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart implementeert u Azure IoT-bewerkingen naar een Kubernetes-cluster met Azure Arc ingeschakeld, 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 te helpen zo snel mogelijk aan de slag te gaan met Azure IoT-bewerkingen, 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 Azure gratis 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. Zie Prepareer uw Kubernetes-cluster met Azure Arc als u meer wilt weten over het implementeren van Azure IoT-bewerkingen in een lokaal cluster op Ubuntu of Azure Kubernetes Service (AKS), maar dit is niet nodig voor deze quickstart.
Belangrijk
Codespaces zijn eenvoudig in te stellen en later af te breken, maar ze zijn niet geschikt voor productie-, prestatie-evaluatie of schaaltests. Gebruik GitHub Codespaces alleen voor verkenning.
De Codespaces-omgeving is voldoende om de quickstartstappen te voltooien, maar biedt geen ondersteuning voor geavanceerde configuraties, zoals beveiligde instellingen. Zie deze scripts in GitHub voor een productieklare implementatie met beveiligde instellingen.
Vereisten
Voordat u begint, moet u de volgende vereisten voorbereiden:
- Een Azure-abonnement. Als u geen Azure abonnement hebt, gratis een abonnement maken voordat u begint.
Een GitHub-account.
Visual Studio Code geïnstalleerd op uw ontwikkelcomputer. Zie Download Visual Studio Code voor meer informatie.
Microsoft.Authorization/roleAssignments/write machtigingen op het niveau van de resourcegroep.
De Azure CLI geïnstalleerd op uw ontwikkelcomputer. Controleer Beschikbare Azure CLI-extensies voor de minimaal vereiste versie voor de connectedk8s-extensie. Gebruik
az --versionom uw versie te controleren enaz upgradeom indien nodig bij te werken. Zie De Azure CLI installeren voor meer informatie.De connectedk8s-extensie voor de Azure CLI. Gebruik de volgende opdracht om de extensie toe te voegen of bij te werken naar de nieuwste versie:
az extension add --upgrade --name connectedk8s
Welk probleem gaan we oplossen?
Azure IoT-bewerkingen 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:
- Maak een Kubernetes-cluster in GitHub Codespaces.
- Verbind het cluster met Azure Arc voor extern beheer.
- Maak een schemaregister.
- Implementeer Azure IoT-bewerkingen in uw cluster.
Cluster maken
In deze sectie maakt u een nieuw cluster.
De Azure-Samples/explore-iot-operations codespace is vooraf geconfigureerd met:
- K3s 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:
Maak een coderuimte in GitHub Codespaces.
Geef de volgende aanbevolen geheimen op voor uw codespace:
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_NAMEomgevingsvariabele die is ingesteld met de naam van de coderuimte.Selecteer Nieuwe coderuimte maken.
Zodra de codespace gereed is, selecteert u de menuknop linksboven en selecteert u Openen in VS Code Desktop.
Installeer de extensie GitHub Codespaces voor Visual Studio Code en meld u aan bij GitHub.
Selecteer in Visual Studio Code Beeld>Terminal.
Gebruik deze terminal om alle CLI-opdrachten uit te voeren voor het beheren van uw cluster.
Belangrijk
De codespace in dit artikel maakt gebruik van een rekenproces van 8 kernen. Dit kan van invloed zijn op uw budget als u de codespace lang actief houdt. Om onverwachte kosten te voorkomen, moet u uw codespace stoppen als u gedurende langere tijd pauzeert tussen onderdelen in deze quickstart. U kunt deze opnieuw starten wanneer u klaar bent om door te gaan. Zie Een codespace stoppen en starten voor meer informatie.
Cluster verbinden met Azure Arc
Uw cluster verbinden met Azure Arc:
Meld u in uw codespace-terminal aan bij Azure CLI:
az loginAanbeveling
Als u de GitHub codespace-omgeving gebruikt in een browser in plaats van vs Code desktop, retourneert het uitvoeren van
az logineen localhost-fout. Om de fout op te lossen, kunt u het volgende doen:- 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
curl "<URL>"uit op een nieuw terminaltabblad. U ziet nu een JSON-antwoord met het bericht 'U bent aangemeld bij Microsoft Azure!'
- Open de codespace in het bureaublad van VS Code en ga terug naar de browserterminal en voer deze opnieuw uit
Nadat u zich hebt aangemeld, geeft Azure CLI al uw abonnementen weer en geeft u uw standaardabonnement aan met een sterretje
*. Als u wilt doorgaan met uw standaardabonnement, selecteert uEnter. Typ anders het nummer van het Azure-abonnement dat u wilt gebruiken.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/actionbewerking 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" az provider register -n "Microsoft.Storage" az provider register -n "Microsoft.Insights"Gebruik de opdracht az group create om een resourcegroep te maken in uw Azure-abonnement om alle resources op te slaan:
az group create --location $LOCATION --resource-group $RESOURCE_GROUPGebruik de opdracht az connectedk8s connect om uw Kubernetes-cluster in te schakelen en te beheren als onderdeel van uw Azure resourcegroep:
az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUPAanbeveling
De waarde van
$CLUSTER_NAMEwordt automatisch ingesteld op de naam van uw codespace. Vervang de omgevingsvariabele als u een andere naam wilt gebruiken.Haal de
objectIdop van de Microsoft Entra ID-toepassing die de Azure Arc-service in uw tenant 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)Gebruik de opdracht az connectedk8s enable-features om ondersteuning voor aangepaste locaties in uw cluster in te schakelen. Deze opdracht maakt gebruik van de
objectIdvan de Microsoft Entra ID toepassing die de Azure Arc-service gebruikt.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-bewerkingen gebruikt. Als u de nieuwste versie wilt installeren, hebt u de nieuwste versie van de Azure IoT-bewerkingen 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-bewerkingen vereist een schemaregister in uw cluster. Schemaregister vereist een Azure-opslagaccount voor de schemagegevens die zijn opgeslagen in de cloud.
Voor het commando om in deze sectie een schemaregister te maken, is de machtiging Microsoft.Authorization/roleAssignments/write 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.
Stel omgevingsvariabelen in voor de resources die u in deze sectie maakt.
Tijdelijke aanduiding Waarde <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>Maak een opslagaccount waarvoor hiërarchische naamruimte is ingeschakeld.
az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespaceMaak 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-bewerkingen en Azure Device Registry gebruiken namespaces om assets en apparaten te organiseren. Elk Azure IoT-bewerkingen 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-bewerkingen onderdelen en implementeert u vervolgens Azure IoT-bewerkingen.
Voer de volgende CLI-opdrachten uit in uw Codespaces-terminal.
Initialiseer uw cluster voor Azure IoT-bewerkingen.
Aanbeveling
De
initopdracht hoeft slechts eenmaal per cluster te worden uitgevoerd.az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUPHet uitvoeren van deze opdracht kan enkele minuten in beslag nemen. U kunt de voortgang bekijken in de voortgangsweergave van de implementatie in de terminal.
Implementeer Azure IoT-bewerkingen. Deze opdracht bevat de optionele connector voor OPC UA die u in de volgende quickstarts gebruikt.
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=StableHet uitvoeren van deze opdracht kan enkele minuten in beslag nemen. U kunt de voortgang bekijken in de voortgangsweergave 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 loginen 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 de 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 de Azure-portal:
Ga in de Azure portal naar de resourcegroep met uw Azure IoT-bewerkingen exemplaar of zoek en selecteer Azure IoT-bewerkingen.
Kies de naam van uw Azure IoT-bewerkingen-instance.
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.
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-bewerkingen 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 even pauzeert voordat u doorgaat naar de volgende quickstart, raden we u aan uw codespace te stoppen om onnodige kosten te voorkomen. Zie Een codespace stoppen en starten voor meer informatie.
Als u alle resources die u voor deze quickstart hebt gemaakt, wilt verwijderen, verwijdert u de Azure resourcegroep die uw Azure Arc verbonden cluster bevat en andere resources die in deze quickstart worden gebruikt. Verwijder vervolgens uw codespace en de geheimen die u hiervoor hebt gemaakt uit GitHub. Als u uw codespace en geheimen wilt verwijderen, raadpleegt u Het verwijderen van een coderuimte en het verwijderen van geheimen.