Quickstart: Azure IoT Operations Preview uitvoeren in GitHub Codespaces met K3s
Belangrijk
Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in preview. Gebruik deze preview-software niet in productieomgevingen.
U moet een nieuwe Azure IoT Operations-installatie implementeren wanneer er een algemeen beschikbare release beschikbaar wordt gesteld. U kunt geen preview-installatie upgraden.
Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
In deze quickstart implementeert u een reeks IoT-services in een Kubernetes-cluster met Azure Arc, zodat u uw apparaten en workloads op afstand kunt beheren. Azure IoT Operations is een digitale suite met services. In deze quickstart wordt u begeleid bij het gebruik van Orchestrator om deze services te implementeren in een Kubernetes-cluster. Aan het einde van de quickstart hebt u een cluster dat u kunt beheren vanuit de cloud waarmee voorbeeldgegevens worden gegenereerd voor gebruik in de volgende quickstarts.
De services die in deze quickstart zijn geïmplementeerd, zijn onder andere:
- MQTT-broker
- Connector voor OPC UA met gesimuleerde thermostaatasset om te beginnen met het genereren van gegevens
- Akri-services
- Azure Device Registry Preview
- Observability
De volgende quickstarts in deze reeks zijn gebaseerd op deze reeks om voorbeeldassets, pijplijnen voor gegevensverwerking en visualisaties te definiëren. Als u Azure IoT Operations wilt implementeren in een cluster zoals AKS Edge Essentials om uw eigen workloads uit te voeren, raadpleegt u Uw Kubernetes-cluster met Azure Arc voorbereiden en Azure IoT Operations Preview implementeren in een Kubernetes-cluster met Arc.
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 worden deze taken uitgevoerd door meerdere teams die samenwerken en sommige taken kunnen verhoogde machtigingen vereisen.
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 bieden ook stappen voor het gebruik van GitHub Codespaces als een virtuele omgeving waarin u snel resources kunt implementeren en opdrachten kunt uitvoeren zonder nieuwe hulpprogramma's op uw eigen machines te installeren.
Vereisten
Voor deze quickstart maakt u een Kubernetes-cluster om de Azure IoT Operations-implementatie te ontvangen.
Als u deze quickstart opnieuw wilt uitvoeren met een cluster waarop Azure IoT Operations al is geïmplementeerd, raadpleegt u de stappen in Resources opschonen om Azure IoT Operations te verwijderen voordat u doorgaat.
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.
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:
- Maak een Kubernetes-cluster en verbind het met Azure Arc voor extern beheer.
- Maak een Azure Key Vault om geheimen voor uw cluster te beheren.
- Configureer uw cluster met een geheimenarchief en service-principal om te communiceren met cloudresources.
- Azure IoT-bewerkingen implementeren in uw cluster.
Een Kubernetes-cluster verbinden met Azure Arc
Azure IoT Operations moet werken op elk Kubernetes-cluster dat voldoet aan de CNCF-standaarden (Cloud Native Computing Foundation). Voor snelheid en gemak gebruikt deze quickstart GitHub Codespaces om uw cluster te hosten.
Belangrijk
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. Zie Uw Kubernetes-cluster met Azure Arc voorbereiden voor informatie over het implementeren van Azure IoT-bewerkingen in een productiecluster zoals AKS Edge Essentials.
In deze sectie maakt u een nieuw cluster en verbindt u het met Azure Arc. 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.
Gebruik GitHub Codespaces om Azure IoT Operations uit te proberen op een Kubernetes-cluster zonder iets op uw lokale computer te installeren. 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:
Maak een codespace in GitHub Codespaces.
Geef de volgende aanbevolen geheimen op voor uw codespace:
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 ook automatisch toegevoegd als omgevingsvariabelen in de codespace-terminal en u kunt deze omgevingsvariabelen gebruiken in de CLI-opdrachten in de volgende sectie.
Daarnaast maakt deze codespace automatisch een
CLUSTER_NAME
omgevingsvariabele 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.
Als u hierom wordt gevraagd, installeert u de GitHub Codespaces-extensie voor Visual Studio Code en meldt u zich aan bij GitHub.
Selecteer Terminal weergeven> in Visual Studio Code.
Gebruik deze terminal om alle opdrachtregel- en CLI-opdrachten uit te voeren voor het beheren van uw cluster.
Uw cluster verbinden met Azure Arc:
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!'.
- Open de codespace in het bureaublad van VS Code en ga terug naar de browserterminal en voer deze opnieuw uit
Stel de context van het Azure-abonnement in voor alle opdrachten:
az account set -s $SUBSCRIPTION_ID
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.IoTOperationsOrchestrator" az provider register -n "Microsoft.IoTOperations" az provider register -n "Microsoft.DeviceRegistry"
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 --subscription $SUBSCRIPTION_ID
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 -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
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.Haal de
objectId
Microsoft Entra ID-toepassing op die de Azure Arc-service gebruikt en sla deze op als een omgevingsvariabele.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
objectId
Microsoft Entra ID-toepassing die door de Azure Arc-service wordt gebruikt.az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Cluster controleren
Gebruik de Azure IoT Operations-extensie voor Azure CLI om te controleren of uw clusterhost correct is geconfigureerd voor implementatie met behulp van de opdracht verify-host op de clusterhost:
az iot ops verify-host
Met deze helperopdracht wordt de connectiviteit met Azure Resource Manager- en Microsoft Container Registry-eindpunten gecontroleerd.
Azure IoT Operations Preview implementeren
In deze sectie gebruikt u de opdracht az iot ops init om uw cluster te configureren, zodat het veilig kan communiceren met uw Azure IoT Operations-onderdelen en -sleutelkluis en vervolgens Azure IoT Operations implementeert.
Voer de volgende CLI-opdrachten uit in uw Codespaces-terminal.
Een sleutelkluis maken. Gebruik voor dit scenario dezelfde naam en resourcegroep als uw cluster. Keyvault-namen hebben een maximale lengte van 24 tekens, dus de volgende opdracht kapt de
CLUSTER_NAME
omgevingsvariabele indien nodig af.az keyvault create --enable-rbac-authorization false --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP
Tip
U kunt een bestaande sleutelkluis voor uw geheimen gebruiken, maar controleer of het machtigingsmodel is ingesteld op kluistoegangsbeleid. U kunt deze instelling controleren in Azure Portal in de sectie Toegangsconfiguratie van een bestaande sleutelkluis. Of gebruik de opdracht az keyvault show om te controleren of dit
enableRbacAuthorization
onwaar is.Azure IoT-bewerkingen implementeren. Het voltooien van deze opdracht duurt enkele minuten:
az iot ops init --simulate-plc --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --kv-id $(az keyvault show --name ${CLUSTER_NAME:0:24} -o tsv --query id)
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.Tip
Als u eerder hebt uitgevoerd, is er automatisch een app-registratie in Microsoft Entra ID voor u gemaakt
az iot ops init
. U kunt die registratie opnieuw gebruiken in plaats van telkens een nieuwe te maken. Als u een bestaande app-registratie wilt gebruiken, voegt u de optionele parameter--sp-app-id <APPLICATION_CLIENT_ID>
toe.
Resources in uw cluster weergeven
Terwijl de implementatie wordt uitgevoerd, kunt u de resources bekijken die op uw cluster worden toegepast. U kunt kubectl-opdrachten gebruiken om wijzigingen in het cluster te bekijken 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
Het kan enkele minuten duren voordat de implementatie is voltooid. Ga door met het uitvoeren van de opdracht om de get pods
weergave te vernieuwen.
Gebruik de volgende stappen om uw resources weer te geven in Azure Portal:
Ga in Azure Portal naar de resourcegroep die uw Azure IoT Operations-exemplaar bevat of zoek en selecteer Azure IoT Operations.
Selecteer de naam van uw Azure IoT Operations-exemplaar.
Op de pagina Overzicht van uw exemplaar worden in de tabel Arc-extensies de resources weergegeven 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 Operations-onderdelen. Vervolgens hebt u deze onderdelen geïmplementeerd in uw cluster. Voor dit testscenario hebt u één Kubernetes-cluster dat waarschijnlijk lokaal op uw computer wordt uitgevoerd. 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 de Azure-resourcegroep die het cluster bevat.