Snabbstart: Distribuera förhandsversionen av Azure IoT Operations till ett Arc-aktiverat Kubernetes-kluster

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc finns för närvarande i FÖRHANDSVERSION. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

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 som innehåller Förhandsversionen av Azure IoT Orchestrator. 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.

De tjänster som distribueras i den här snabbstarten är:

Följande snabbstarter i den här serien bygger på den här för att definiera exempeltillgångar, databearbetningspipelines och visualiseringar. Om du vill distribuera Azure IoT Operations för att köra dina egna arbetsbelastningar kan du läsa Förbereda ditt Azure Arc-aktiverade Kubernetes-kluster och Distribuera Azure IoT Operations Preview-tillägg till ett Kubernetes-kluster.

Innan du börjar

Den här serien med snabbstarter är avsedd att ge dig möjlighet att utvärdera ett scenario från slutpunkt till slutpunkt med Azure IoT Operations. I en verklig utvecklings- eller produktionsmiljö utförs dessa uppgifter av flera team som arbetar tillsammans 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 rekommenderar också att du använder 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. Om du vill ha mer information om de här alternativen fortsätter du till förutsättningarna.

När du är redo att lära dig mer om de enskilda rollerna och uppgifterna ger guiderna mer specifik implementering och behörighetsinformation.

Förutsättningar

Granska förutsättningarna baserat på den miljö som du använder för att vara värd för Kubernetes-klustret.

För den här snabbstarten rekommenderar vi att du använder en virtuell miljö (GitHub Codespaces) som ett snabbt sätt att komma igång utan att installera nya verktyg.

Som en del av den här snabbstarten skapar du ett kluster i antingen GitHub Codespaces, AKS Edge Essentials eller K3s i Ubuntu Linux. Om du vill köra den här snabbstarten igen med ett kluster som redan har Azure IoT Operations distribuerat till det kan du läsa stegen i Rensa resurser för att avinstallera Azure IoT Operations innan du fortsätter.

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:

  1. Anslut ett Kubernetes-kluster till Azure Arc för fjärrhantering.
  2. Skapa ett Azure Key Vault för att hantera hemligheter för klustret.
  3. Konfigurera klustret med ett hemlighetslager och tjänstens huvudnamn för att kommunicera med molnresurser.
  4. Distribuera Azure IoT Operations till klustret.

Anslut ett Kubernetes-kluster till Azure Arc

Azure IoT Operations bör fungera på alla Kubernetes-kluster som följer CNCF-standarderna (Cloud Native Computing Foundation). För den här snabbstarten använder du GitHub Codespaces, AKS Edge Essentials i Windows eller K3s på Ubuntu Linux.

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 har distribuerat 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:

Viktigt!

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.

Så här kommer du igång med ditt kodområde:

  1. Skapa ett kodområde i GitHub Codespaces.

    Skapa ett explore-iot-operations-kodområde

    Du behöver inte ange de rekommenderade hemligheterna i det här steget. Om du gör det sparas de på ditt GitHub-konto som ska användas i dessa och framtida kodområden. De läggs också till som miljövariabler i kodområdesterminalen och du behöver inte köra CLI-kommandona i nästa avsnitt som konfigurerar variablerna prenumeration, resursgrupp eller plats.

    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. Följande regioner stöds i offentlig förhandsversion: eastus, eastus2, westus, westus2, westus3, westeurope eller northeurope.
  2. Välj Skapa nytt kodområde.

  3. 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.

    Öppna VS Code-skrivbordet

  4. Om du uppmanas till det installerar du GitHub Codespaces-tillägget för Visual Studio Code och loggar in på GitHub.

  5. I Visual Studio Code väljer du Visa>terminal.

    Använd den här terminalen för att köra alla kommandorads- och CLI-kommandon för att hantera klustret.

Så här ansluter du klustret till Azure Arc:

  1. Logga in med Azure CLI på datorn där du distribuerade Kubernetes-klustret eller kodområdesterminalen:

    az login
    

    Dricks

    Om du använder ett GitHub-kodområde i en webbläsare az login returnerar du ett localhost-fel i webbläsarfönstret när du har loggat in. Så här åtgärdar du något av följande:

    • Ö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>" den på en ny terminalflik. Du bör se ett JSON-svar med meddelandet "Du har loggat in på Microsoft Azure!."
  2. Ange en miljövariabel för klusternamnet så som det visas i resursgruppen.

    # Name of the Arc-enabled cluster to create in your resource group
    export CLUSTER_NAME=<NEW_CLUSTER_NAME>
    
  3. Ange miljövariabler för din Azure-prenumeration, plats och en ny resursgrupp. Om du använder GitHub Codespaces och anger dessa hemligheter när du skapar ditt kodområde kan du hoppa över det här steget.

    # Id of the subscription where your resource group and Arc-enabled cluster will be created
    export SUBSCRIPTION_ID=<SUBSCRIPTION_ID>
    
    # Azure region where the created resource group will be located
    # Currently supported regions: "eastus", "eastus2", "westus", "westus2", "westus3", "westeurope", or "northeurope"
    export LOCATION=<REGION>
    
    # Name of a new resource group to create which will hold the Arc-enabled cluster and Azure IoT Operations resources
    export RESOURCE_GROUP=<NEW_RESOURCE_GROUP_NAME>
    
  4. Ange Azure-prenumerationskontexten för alla kommandon:

    az account set -s $SUBSCRIPTION_ID
    
  5. Registrera nödvändiga resursprovidrar i din prenumeration:

    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.IoTOperationsMQ"
    az provider register -n "Microsoft.IoTOperationsDataProcessor"
    az provider register -n "Microsoft.DeviceRegistry"
    
  6. 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 --subscription $SUBSCRIPTION_ID
    
  7. 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 -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  8. Hämta det objectId Microsoft Entra-ID-program som Azure Arc-tjänsten använder och spara det som en miljövariabel.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  9. 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. Kör det här kommandot på datorn där du distribuerade Kubernetes-klustret:

    az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    

Verifiera kluster

Använd Azure IoT Operations-tillägget för Azure CLI för att kontrollera att klustervärden är korrekt konfigurerad för distribution med hjälp av kommandot verify-host på klustervärden:

az iot ops verify-host

Det här hjälpkommandot kontrollerar anslutningen till Azure Resource Manager- och Microsoft Container Registry-slutpunkter.

Distribuera Förhandsversion av Azure IoT Operations

I det här avsnittet använder du kommandot az iot ops init för att konfigurera klustret så att det kan kommunicera säkert med dina Azure IoT Operations-komponenter och nyckelvalv och sedan distribuera Azure IoT Operations.

  1. Skapa ett nyckelvalv. Ersätt platshållarparametrarna med din egen information.

    Platshållare Värde
    RESOURCE_GROUP Namnet på resursgruppen som innehåller det anslutna klustret.
    KEYVAULT_NAME Ett namn på ett nytt nyckelvalv.
    az keyvault create --enable-rbac-authorization false --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP
    

    Dricks

    Du kan använda ett befintligt nyckelvalv för dina hemligheter, men kontrollera att behörighetsmodellen är inställd på Åtkomstprincip för valv. Du kan kontrollera den här inställningen i Azure-portalen i avsnittet Åtkomstkonfiguration i ett befintligt nyckelvalv. Eller använd kommandot az keyvault show för att kontrollera att det enableRbacAuthorization är falskt.

  2. Kör följande CLI-kommando på utvecklingsdatorn eller i kodområdesterminalen. Ersätt platshållarparametrarna med din egen information.

    Platshållare Värde
    CLUSTER_NAME Namnet på det anslutna klustret.
    RESOURCE_GROUP Namnet på resursgruppen som innehåller det anslutna klustret.
    KEYVAULT_NAME Namnet på ditt nyckelvalv.
    az iot ops init --simulate-plc --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --kv-id $(az keyvault show --name <KEYVAULT_NAME> -o tsv --query id)
    

    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.

    Dricks

    Om du har kört az iot ops init tidigare skapade den automatiskt en appregistrering i Microsoft Entra-ID åt dig. Du kan återanvända registreringen i stället för att skapa en ny varje gång. Om du vill använda en befintlig appregistrering lägger du till den valfria parametern --sp-app-id <APPLICATION_CLIENT_ID>.

  3. Dessa snabbstarter använder OPC PLC-simulatorn för att generera exempeldata. Kör följande kommando för att konfigurera simulatorn för snabbstartsscenariot:

    Viktigt!

    Använd inte följande exempel i produktion, använd det endast i simulerings- och testsyfte. Exemplet sänker säkerhetsnivån för OPC PLC så att den accepterar anslutningar från en klient utan en explicit peer-certifikatförtroendeåtgärd.

    az k8s-extension update --version 0.3.0-preview --name opc-ua-broker --release-train preview --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --cluster-type connectedClusters --auto-upgrade-minor-version false --config opcPlcSimulation.deploy=true --config opcPlcSimulation.autoAcceptUntrustedCertificates=true
    

Visa resurser i klustret

Medan distributionen pågår kan du titta på de resurser som tillämpas på klustret. Du kan 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

Det kan ta flera minuter innan distributionen har slutförts. Fortsätt att köra get pods kommandot för att uppdatera vyn.

Om du vill visa klustret på Azure-portalen använder du följande steg:

  1. Gå till den resursgrupp som innehåller klustret i Azure-portalen.

  2. I Översikt över resursgruppen väljer du namnet på klustret.

  3. I klustret väljer du Tillägg i avsnittet Inställningar på menyn.

    Skärmbild som visar de distribuerade tilläggen i ditt Arc-aktiverade kluster.

    Du kan se att klustret kör tillägg av typen microsoft.iotoperations.x, som är gruppnamnet för alla Azure IoT Operations-komponenter och orkestreringstjänsten.

    Det finns också ett tillägg som kallas akvsecretsprovider. Det här tillägget är den hemlighetsprovider som du har konfigurerat och installerat i klustret med az iot ops init kommandot . Du kan ta bort och installera om Azure IoT Operations-komponenterna under testningen, men behålla tillägget för hemlighetsprovidern i 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 planerar att installera om den i klustret måste du behålla hemlighetsprovidern i klustret.

  1. I resursgruppen i Azure-portalen väljer du klustret.

  2. På sidan klusterresurs väljer du Tillägg.

  3. Välj alla tillägg av typen microsoft.iotoperations.x och microsoft.deviceregistry.assets och välj sedan Avinstallera. Du behöver inte avinstallera tillägget för hemlighetsprovidern:

    Skärmbild som visar tilläggen som ska avinstalleras.

  4. Gå tillbaka till resursgruppen och välj den anpassade platsresursen och välj sedan Ta bort.

Om du vill ta bort alla resurser som du skapade för den här snabbstarten tar du bort Kubernetes-klustret som du distribuerade Azure IoT Operations till och tar bort Azure-resursgruppen som innehöll klustret.

Gå vidare