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:
- Maak een Kubernetes-cluster in GitHub Codespaces.
- Verbind het cluster met Azure Arc voor extern beheer.
- Maak een schemaregister.
- 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:
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 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.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 CLI-opdrachten uit te voeren voor het beheren van uw cluster.
Cluster verbinden met Azure Arc
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
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 uEnter
. Typ anders het nummer van het Azure-abonnement dat u wilt gebruiken.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"
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
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.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)
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.
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>
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
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.
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.
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:
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.
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 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.