Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten distribuerar du Azure IoT Operations till ett Azure Arc-aktiverat Kubernetes-kluster så att du kan fjärrhantera dina enheter och arbetsbelastningar. I slutet av snabbstarten har du ett kluster som du kan hantera från molnet. Resten av snabbstartguiderna i den här helhetslösningsserien bygger på denna för att definiera exempelresurser, databehandlingskedjor och visualiseringar.
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 Azure kostnadsfritt konto så att du har ägarbehörighet över resurserna i dessa snabbstarter.
Vi använder GitHub Codespaces som en virtuell miljö för den här snabbstarten så att du kan testa scenariot utan att installera nya verktyg på dina egna datorer. Om du vill lära dig hur du distribuerar Azure IoT Operations till ett lokalt kluster på Ubuntu eller Azure Kubernetes Service (AKS) kan du läsa Prepare ditt Azure Arc-aktiverade Kubernetes-kluster, men det är inte nödvändigt för den här snabbstarten.
Viktigt!
Kodutrymmen är enkla att konfigurera snabbt och ta bort senare, men de är inte lämpliga för produktion, prestandautvärdering eller skalningstestning. Använd endast GitHub Codespaces för utforskning.
Codespaces-miljön räcker för att slutföra snabbstartsstegen, men den stöder inte avancerade konfigurationer som säkra inställningar. Se dessa skript i GitHub för en produktionsklar distribution med säkra inställningar.
Förutsättningar
Förbered följande förutsättningar innan du börjar:
- En Azure-abonnemang. Om du inte har en Azure prenumeration skapa en kostnadsfri innan du börjar.
Ett GitHub konto.
Visual Studio Code installerat på utvecklingsdatorn. Mer information finns i Ladda ned Visual Studio Code.
Microsoft.Authorization/roleAssignments/write-behörigheter på resursgruppsnivå.
Azure CLI installerat på utvecklingsdatorn. Kontrollera tillgängliga Azure CLI-tillägg för minsta krav på versionen för connectedk8s-tillägget. Använd
az --versionför att kontrollera din version ochaz upgradeuppdatera om det behövs. Mer information finns i Installera Azure CLI.Connectedk8s-tillägget för Azure CLI. Använd följande kommando för att lägga till tillägget eller uppdatera det till den senaste versionen:
az extension add --upgrade --name connectedk8s
Vilket problem kommer vi att lösa?
Azure IoT Operations är en uppsättning datatjänster som körs på 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 i GitHub Codespaces.
- Anslut klustret till Azure Arc för fjärrhantering.
- Skapa ett schemaregister.
- Distribuera Azure IoT Operations till klustret.
Skapa kluster
I det här avsnittet skapar du ett nytt kluster.
Kodområdet Azure-Samples/explore-iot-operations är förkonfigurerat med:
- K3s körs i K3d för ett lättvikts 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 Prenumerations-ID Ditt Azure prenumerations-ID. Resursgrupp 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. Tips
De värden som du anger som hemligheter i det här steget sparas på ditt GitHub konto som ska användas i detta och framtida Codespaces. 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_NAMEmiljö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 att göra det installerar du GitHub Codespaces-tillägget för Visual Studio Code och loggar in på GitHub.
I Visual Studio Code väljer du View>Terminal.
Använd den här terminalen för att köra alla CLI-kommandon för att hantera klustret.
Viktigt!
Kodområdet i den här artikeln använder en beräkningsinstans med 8 kärnor. Detta kan påverka din budget om du håller kodområdet igång under en längre tid. Undvik oväntade kostnader genom att stoppa kodområdet om du pausar under längre perioder mellan artiklar i den här snabbstarten. Du kan starta om den när du är redo att fortsätta. Mer information finns i Stoppa och starta ett kodområde.
Ansluta kluster till Azure Arc
Så här ansluter du klustret till Azure Arc:
Logga in på Azure CLI i kodområdesterminalen:
az loginTips
Om du använder GitHub Codespaces-miljön i en webbläsare istället för VS Code-skrivbordsversion returnerar att köra
az loginett 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 loginigen. - 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>"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 skriver du numret på den Azure prenumeration som du vill använda.Registrera nödvändiga resursprovidrar i din prenumeration:
Tips
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 Contributor och ägare för prenumerationen. Mer information finns i Azure resursleverantörer 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" az provider register -n "Microsoft.Storage" az provider register -n "Microsoft.Insights"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_GROUPAnvänd kommandot az connectedk8s connect för att Arc-aktivera kubernetes-klustret och hantera det som en del av din Azure resursgrupp:
az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUPTips
Värdet
$CLUSTER_NAMEanges automatiskt till namnet på ditt kodutrymme. Ersätt miljövariabeln om du vill använda ett annat namn.Hämta
objectIdför den Microsoft Entra ID-applikation som Azure Arc-tjänsten använder i din klientorganisation och spara den 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
objectIdför 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
Installera den senaste versionen av az iot ops
Den här snabbstarten använder den senaste versionen av Azure IoT Operations. Om du vill installera den senaste versionen behöver du den senaste versionen av Azure IoT Operations CLI-tillägget:
az extension add --upgrade --name azure-iot-ops
Skapa lagringskonto och schemaregister
Schemaregistret är en synkroniserad lagringsplats som lagrar meddelandedefinitioner både i molnet och på gränsen. Azure IoT Operations kräver ett schemaregister i klustret. Schemaregistret kräver ett Azure lagringskonto för schemainformationen som lagras i molnet.
Kommandot för att skapa ett schemaregister i det här avsnittet kräver Microsoft.Authorization/roleAssignments/write-behörighet på resursgruppsnivå. Den här behörigheten används för att ge schemaregistret en deltagarroll så att den kan skriva till lagringskontot.
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 för ditt schemaregister. Schemaregisternamn får bara innehålla siffror, gemener och bindestreck. <SCHEMA_REGISTRY_NAMESPACE> Ett namn på schemaregistrets namnområde. Namnområdet identifierar unikt ett schemaregister i en klientorganisation. Namn på schemaregisternamn får bara innehålla siffror, gemener och bindestreck. STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME> SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME> 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-namespaceSkapa ett schemaregister som ansluter till ditt lagringskonto. Det här kommandot skapar också en blobcontainer med namnet scheman i lagringskontot.
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)
Skapa ett namnområde för Azure enhetsregister
Azure IoT Operations och Azure Device Registry använder namespaces för att organisera tillgångar och enheter. Varje Azure IoT Operations instans använder ett enda namnområde för sina tillgångar och enheter.
Kör följande CLI-kommando för att skapa ett namnområde för Azure enhetsregister.
az iot ops ns create -n myqsnamespace -g $RESOURCE_GROUP
Distribuera 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.
Tips
Kommandot
initbehöver bara köras en gång per kluster.az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUPDet kan ta flera minuter att slutföra det här kommandot. Du kan se förloppet i distributionsprocessen i terminalens förloppsdisplay.
Distribuera Azure IoT Operations. Det här kommandot innehåller den valfria anslutningsappen för OPC UA som du använder i följande snabbstarter.
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=StableDet kan ta flera minuter att slutföra det här kommandot. Du kan se förloppet i distributionsprocessen i terminalens förloppsdisplay.
Om du får ett felmeddelande om att enheten måste hanteras för att komma åt resursen kör
az logindu igen och ser till att du loggar in interaktivt med en webbläsare.
Visa resurser i kluster
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-portalen.
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 portalen använder du följande steg:
I Azure-portalen 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 väljer du fliken Resurssammanfattning för att visa etableringstillståndet för 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 körs i Codespaces. 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 pausar innan du går vidare till nästa snabbstart rekommenderar vi att du stoppar kodområdet för att undvika onödiga kostnader. Mer information finns i Stoppa och starta ett kodområde.
Om du vill ta bort alla resurser som du skapade för den här snabbstarten tar du bort den Azure resursgrupp som innehåller ditt Azure Arc anslutna kluster och andra resurser som används i den här snabbstarten. Ta sedan bort kodområdet och hemligheterna som du skapade för det från GitHub. Information om hur du tar bort ditt kodområde och dina hemligheter finns i Ta bort ett kodområde och ta bort hemligheter.