Snabbstart: Kör Azure IoT Operations Preview i GitHub Codespaces med K3s
Viktigt!
Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc är för närvarande i förhandsversion. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.
Du måste distribuera en ny Azure IoT Operations-installation när en allmänt tillgänglig version blir tillgänglig. Du kommer inte att kunna uppgradera en förhandsgranskningsinstallation.
Juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller som ännu inte har släppts i allmän tillgänglighet finns i Kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
I den här snabbstarten distribuerar du en uppsättning IoT-tjänster till ett Azure Arc-aktiverat Kubernetes-kluster så att du kan fjärrhantera dina enheter och arbetsbelastningar. Azure IoT Operations är en digital driftssvit med tjänster. Den här snabbstarten vägleder dig genom att använda Orchestrator för att distribuera dessa tjänster till ett Kubernetes-kluster. I slutet av snabbstarten har du ett kluster som du kan hantera från molnet som genererar exempeldata som ska användas i följande snabbstarter.
Resten av snabbstarterna i den här serien från slutpunkt till slutpunkt bygger på den här för att definiera exempeltillgångar, databearbetningspipelines och visualiseringar.
Om du vill distribuera Azure IoT Operations till ett lokalt kluster, till exempel Azure Kubernetes Service Edge Essentials eller K3s på Ubuntu, kan du läsa Distributionsinformation.
Innan du börjar
Den här serien med snabbstarter är avsedd att hjälpa dig att komma igång med Azure IoT Operations så snabbt som möjligt så att du kan utvärdera ett scenario från slutpunkt till slutpunkt. I en verklig utvecklings- eller produktionsmiljö utför flera team som arbetar tillsammans dessa uppgifter och vissa uppgifter kan kräva utökade behörigheter.
För bästa nya användarupplevelse rekommenderar vi att du använder ett kostnadsfritt Azure-konto så att du har ägarbehörighet för resurserna i dessa snabbstarter. Vi tillhandahåller även steg för att använda GitHub Codespaces som en virtuell miljö där du snabbt kan börja distribuera resurser och köra kommandon utan att installera nya verktyg på dina egna datorer.
Förutsättningar
I den här snabbstarten skapar du ett Kubernetes-kluster för att ta emot Azure IoT Operations-distributionen.
Om du vill återanvända ett kluster som redan har Azure IoT Operations distribuerat till det läser du stegen i Rensa resurser för att avinstallera Azure IoT Operations innan du fortsätter.
Förbered följande förutsättningar innan du börjar:
En Azure-prenumeration Om du inte har en Azure-prenumeration skapar du en kostnadsfritt innan du börjar.
Ett GitHub-konto.
Visual Studio Code installerat på utvecklingsdatorn. Mer information finns i Ladda ned Visual Studio Code.
Behörigheter för Microsoft.Authorization/roleAssignments/write på resursgruppsnivå.
Vilket problem kommer vi att lösa?
Azure IoT Operations är en uppsättning datatjänster som körs i Kubernetes-kluster. Du vill att dessa kluster ska fjärrhanteras från molnet och kunna kommunicera säkert med molnresurser och slutpunkter. Vi tar itu med dessa problem med följande uppgifter i den här snabbstarten:
- Skapa ett Kubernetes-kluster och anslut det till Azure Arc för fjärrhantering.
- Skapa ett schemaregister.
- Distribuera Azure IoT Operations till klustret.
Ansluta ett Kubernetes-kluster till Azure Arc
Azure IoT Operations stöder Azure Kubernetes Service (AKS) Edge Essentials och K3s i Ubuntu-kluster. Men för snabbhet och bekvämlighet använder den här snabbstarten GitHub Codespaces som värd för klustret.
Kodutrymmen är enkla att konfigurera snabbt och ta ned senare, men de är inte lämpliga för prestandautvärdering eller skalningstestning. Använd Endast GitHub Codespaces för utforskning. Information om hur du distribuerar Azure IoT-åtgärder till ett kluster i Windows eller Ubuntu finns i Förbereda ditt Azure Arc-aktiverade Kubernetes-kluster.
I det här avsnittet skapar du ett nytt kluster och ansluter det till Azure Arc. Om du vill återanvända ett kluster som du distribuerade Azure IoT-åtgärder till tidigare läser du stegen i Rensa resurser för att avinstallera Azure IoT Operations innan du fortsätter.
Använd GitHub Codespaces för att prova Azure IoT-åtgärder i ett Kubernetes-kluster utan att installera något på den lokala datorn. Kodområdet Azure-Samples/explore-iot-operations är förkonfigurerat med:
- K3-filer som körs i K3d för ett enkelt Kubernetes-kluster
- Azure CLI
- Kubectl för att hantera Kubernetes-resurser
- Andra användbara verktyg som Helm och k9s
Använd följande steg för att skapa ditt kodområde och kluster:
Skapa ett kodområde i GitHub Codespaces.
Ange följande rekommenderade hemligheter för ditt kodområde:
Parameter Värde SUBSCRIPTION_ID ditt prenumerations-ID för Azure RESOURCE_GROUP Ett namn på en ny Azure-resursgrupp där klustret ska skapas. PLATS En Azure-region nära dig. Listan över regioner som stöds finns i Regioner som stöds. Dricks
De värden som du anger som hemligheter i det här steget sparas på ditt GitHub-konto som ska användas i dessa och framtida kodområden. De läggs till som miljövariabler i kodområdesterminalen och du kan använda dessa miljövariabler i CLI-kommandona i nästa avsnitt.
Dessutom skapar det här kodområdet en
CLUSTER_NAME
miljövariabel som anges med kodområdesnamnet.Välj Skapa nytt kodområde.
När kodområdet är klart väljer du menyknappen längst upp till vänster och väljer sedan Öppna i VS Code Desktop.
Om du uppmanas till det installerar du GitHub Codespaces-tillägget för Visual Studio Code och loggar in på GitHub.
I Visual Studio Code väljer du Visa>terminal.
Använd den här terminalen för att köra alla CLI-kommandon för att hantera klustret.
Så här ansluter du klustret till Azure Arc:
Logga in på Azure CLI i kodområdesterminalen:
az login
Dricks
Om du använder GitHub-kodområdesmiljön i en webbläsare i stället för VS Code-skrivbordet returnerar körningen
az login
ett localhost-fel. Åtgärda felet genom att antingen:- Öppna kodområdet i VS Code-skrivbordet och gå sedan tillbaka till webbläsarterminalen och kör
az login
igen. - Eller när du har fått localhost-felet i webbläsaren kopierar du URL:en från webbläsaren och kör
curl "<URL>"
den på en ny terminalflik. Du bör se ett JSON-svar med meddelandet "Du har loggat in på Microsoft Azure!."
- Öppna kodområdet i VS Code-skrivbordet och gå sedan tillbaka till webbläsarterminalen och kör
När du har loggat in visar Azure CLI alla dina prenumerationer och anger din standardprenumeration med en asterisk
*
. Om du vill fortsätta med din standardprenumeration väljer duEnter
. Annars anger du numret på den Azure-prenumeration som du vill använda.Registrera nödvändiga resursprovidrar i din prenumeration:
Kommentar
Det här steget behöver bara köras en gång per prenumeration. Om du vill registrera resursprovidrar behöver du behörighet att utföra åtgärden
/register/action
, som ingår i rollerna deltagare och ägare i prenumerationen. Mer information finns i Azure-resursprovidrar och typer.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"
Använd kommandot az group create för att skapa en resursgrupp i din Azure-prenumeration för att lagra alla resurser:
az group create --location $LOCATION --resource-group $RESOURCE_GROUP
Använd kommandot az connectedk8s connect för att Arc-aktivera ditt Kubernetes-kluster och hantera det som en del av din Azure-resursgrupp:
az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
Dricks
Värdet
$CLUSTER_NAME
för anges automatiskt till namnet på ditt kodområde. Ersätt miljövariabeln om du vill använda ett annat namn.Hämta det
objectId
Microsoft Entra-ID-program som Azure Arc-tjänsten i din klient använder och spara det som en miljövariabel. Kör följande kommando exakt som skrivet, utan att ändra GUID-värdet.export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Använd kommandot az connectedk8s enable-features för att aktivera stöd för anpassad plats i klustret. Det här kommandot använder
objectId
det Microsoft Entra-ID-program som Azure Arc-tjänsten använder.az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Skapa ett lagringskonto och ett schemaregister
Azure IoT Operations kräver ett schemaregister i klustret. Schemaregistret kräver ett Azure Storage-konto så att det kan synkronisera schemainformation mellan molnet och gränsen.
Kommandot för att skapa ett schemaregister i det här avsnittet kräver Behörigheter för Microsoft.Authorization/roleAssignments/write på resursgruppsnivå.
Kör följande CLI-kommandon i codespaces-terminalen.
Ange miljövariabler för de resurser som du skapar i det här avsnittet.
Platshållare Värde <STORAGE_ACCOUNT_NAME> Ett namn på lagringskontot. Lagringskontonamn måste vara mellan 3 och 24 tecken långa och endast innehålla siffror och gemener. <SCHEMA_REGISTRY_NAME> Ett namn på schemaregistret. <SCHEMA_REGISTRY_NAMESPACE> Ett namn på schemaregistrets namnområde. Namnområdet identifierar unikt ett schemaregister i en klientorganisation. export STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME> export SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME> export SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
Skapa ett lagringskonto med hierarkiskt namnområde aktiverat.
az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
Skapa ett schemaregister som ansluter till ditt lagringskonto. Det här kommandot skapar också en blobcontainer med namnet scheman i lagringskontot om det inte redan finns någon.
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)
Distribuera Förhandsversion av Azure IoT Operations
I det här avsnittet konfigurerar du klustret med beroendena för dina Azure IoT Operations-komponenter och distribuerar sedan Azure IoT Operations.
Kör följande CLI-kommandon i codespaces-terminalen.
Initiera klustret för Azure IoT Operations.
Dricks
Kommandot
init
behöver bara köras en gång per kluster. Om du återanvänder ett kluster som redan har Azure IoT Operations version 0.8.0 distribuerat på det kan du hoppa över det här steget.az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Det kan ta flera minuter att slutföra det här kommandot. Du kan se förloppet i distributionsframsteget i terminalen.
Distribuera Azure IoT-åtgärder. Det tar flera minuter att slutföra det här kommandot:
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
Det kan ta flera minuter att slutföra det här kommandot. Du kan se förloppet i distributionsframsteget i terminalen.
Om du får ett felmeddelande om att enheten måste hanteras för att komma åt resursen kör
az login
du igen och ser till att du loggar in interaktivt med en webbläsare.
Visa resurser i klustret
Medan distributionen pågår visar CLI-förloppsgränssnittet den distributionsfas som du befinner dig i. När distributionen är klar kan du använda kubectl-kommandon för att observera ändringar i klustret eller, eftersom klustret är Arc-aktiverat, kan du använda Azure Portal.
Om du vill visa poddarna i klustret kör du följande kommando:
kubectl get pods -n azure-iot-operations
Om du vill visa dina resurser på Azure Portal använder du följande steg:
I Azure Portal går du till resursgruppen som innehåller din Azure IoT Operations-instans eller söker efter och väljer Azure IoT Operations.
Välj namnet på din Azure IoT Operations-instans.
På sidan Översikt för din instans visar fliken Arc-tillägg de resurser som har distribuerats till klustret.
Hur löste vi problemet?
I den här snabbstarten konfigurerade du ditt Arc-aktiverade Kubernetes-kluster så att det kunde kommunicera säkert med dina Azure IoT Operations-komponenter. Sedan distribuerade du dessa komponenter till klustret. I det här testscenariot har du ett enda Kubernetes-kluster som förmodligen körs lokalt på datorn. I ett produktionsscenario kan du dock använda samma steg för att distribuera arbetsbelastningar till många kluster på många platser.
Rensa resurser
Om du fortsätter till nästa snabbstart behåller du alla dina resurser.
Om du vill ta bort Azure IoT Operations-distributionen men behålla klustret använder du kommandot az iot ops delete :
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Om du vill ta bort alla resurser som du skapade för den här snabbstarten tar du bort Kubernetes-klustret där du distribuerade Azure IoT-åtgärder och tar sedan bort azure-resursgruppen som innehöll klustret.
Om du använde Codespaces för dessa snabbstarter tar du bort ditt Codespace från GitHub.