Sdílet prostřednictvím


Rychlý start: Spuštění operací Azure IoT v GitHub Codespaces s využitím K3s

V tomto rychlém startu nasadíte operace Azure IoT do clusteru Kubernetes s podporou Služby Azure Arc, abyste mohli vzdáleně spravovat zařízení a úlohy. Na konci rychlého startu máte cluster, který můžete spravovat z cloudu. Zbytek rychlých startů v této ucelené řadě vychází z této série, která definuje ukázkové prostředky, kanály zpracování dat a vizualizace.

Než začnete

Tato série rychlých startů vám pomůže co nejrychleji začít s operacemi Azure IoT, abyste mohli vyhodnotit kompletní scénář. Ve skutečném vývojovém nebo produkčním prostředí může několik týmů, které spolupracují, provádět tyto úlohy a některé úkoly můžou vyžadovat zvýšená oprávnění.

Pro co nejlepší nové uživatelské prostředí doporučujeme použít bezplatný účet Azure, abyste měli oprávnění vlastníka k prostředkům v těchto rychlých startech.

Pro účely tohoto rychlého startu také používáme GitHub Codespaces jako virtuální prostředí, abyste mohli scénář otestovat bez instalace nových nástrojů na vlastní počítače. Pokud ale chcete nasadit operace Azure IoT do místního clusteru v Ubuntu nebo Azure Kubernetes Service (AKS), přečtěte si téma Příprava clusteru Kubernetes s podporou Azure Arc.

Důležité

V současné době je K3s v Ubuntu 24.04 jedinou obecně dostupnou platformou pro nasazení operací Azure IoT v produkčním prostředí. Další informace najdete v tématu Podporovaná prostředí.

Požadavky

Než začnete, připravte následující požadavky:

  • Předplatné Azure. Pokud nemáte předplatné Azure, vytvořte si ho zdarma , než začnete.

  • Účet GitHub.

  • Visual Studio Code nainstalovaný na vývojovém počítači Další informace naleznete v tématu Stažení editoru Visual Studio Code.

  • Oprávnění Microsoft.Authorization/roleAssignments/write na úrovni skupiny prostředků.

Jaký problém vyřešíme?

Operace Azure IoT je sada datových služeb, které běží v clusterech Kubernetes. Chcete, aby se tyto clustery spravily vzdáleně z cloudu a mohly bezpečně komunikovat s cloudovými prostředky a koncovými body. Tyto obavy řešíme s následujícími úlohami v tomto rychlém startu:

  1. Vytvořte cluster Kubernetes v GitHub Codespaces.
  2. Připojte cluster ke službě Azure Arc pro vzdálenou správu.
  3. Vytvořte registr schématu.
  4. Nasazení operací Azure IoT do clusteru

Vytvoření clusteru

Operace Azure IoT je možné nasadit do K3s v Ubuntu, Azure Kubernetes Service (AKS) Edge Essentials a AKS v Azure Local. Pro zrychlení a pohodlí ale tento rychlý start používá k hostování clusteru GitHub Codespaces. Informace o nasazení operací Azure IoT do clusteru ve Windows nebo Ubuntu najdete v tématu Příprava clusteru Kubernetes s podporou Azure Arc.

Poznámka:

Codespaces se dají snadno nastavit a rozhodit později, ale nejsou vhodné pro vyhodnocení výkonu nebo testování škálování. Ke zkoumání používejte jen GitHub Codespaces.

Prostředí Codespaces stačí k dokončení kroků pro rychlý start, ale nepodporuje pokročilé konfigurace.

V této části vytvoříte nový cluster. Pokud chcete znovu použít cluster, do kterého jste nasadili operace Azure IoT, přečtěte si kroky v části Vyčištění prostředků a před pokračováním odinstalujte operace Azure IoT.

Azure-Samples /explore-iot-operations codespace je předem nakonfigurovaný pomocí:

  • K3s běžící v K3d pro jednoduchý cluster Kubernetes
  • Azure CLI
  • Kubectl pro správu prostředků Kubernetes
  • Další užitečné nástroje, jako je Helm a k9s

K vytvoření prostředí codespace a clusteru použijte následující kroky:

  1. Vytvořte v GitHub Codespaces prostor kódu.

    Vytvoření codespace pro explore-iot-operations

  2. Zadejte následující doporučené tajné kódy pro váš codespace:

    Parametr Hodnota
    SUBSCRIPTION_ID ID vašeho předplatného Azure
    RESOURCE_GROUP Název nové skupiny prostředků Azure, ve které se cluster vytvoří.
    UMÍSTĚNÍ Oblast Azure blízko vás. Seznam aktuálně podporovaných oblastí najdete v tématu Podporované oblasti.

    Tip

    Hodnoty, které zadáte jako tajné kódy v tomto kroku, se uloží na účet GitHubu, aby se použily v tomto a budoucím codespaces. Přidají se jako proměnné prostředí v terminálu codespace a tyto proměnné prostředí můžete použít v příkazech rozhraní příkazového řádku v další části.

    Kromě toho tento codespace vytvoří proměnnou CLUSTER_NAME prostředí, která je nastavena s názvem codespace.

  3. Vyberte Vytvořit nový prostor kódu.

  4. Jakmile je codespace připravený, vyberte tlačítko nabídky v levém horním rohu a pak vyberte Otevřít v desktopové aplikaci VS Code.

    Snímek obrazovky znázorňující otevření prostoru codespace v desktopové verzi VS Code

  5. Pokud se zobrazí výzva, nainstalujte rozšíření GitHub Codespaces pro Visual Studio Code a přihlaste se k GitHubu.

  6. V editoru Visual Studio Code vyberte Zobrazit>terminál.

    Pomocí tohoto terminálu spusťte všechny příkazy rozhraní příkazového řádku pro správu clusteru.

Připojení clusteru ke službě Azure Arc

Připojení clusteru ke službě Azure Arc:

  1. V terminálu codespace se přihlaste k Azure CLI:

    az login
    

    Tip

    Pokud používáte prostředí Codespace GitHubu v prohlížeči místo desktopové verze VS Code, vrátí spuštění az login chybu localhost. Chybu opravíte tak, že:

    • Otevřete codespace v desktopové verzi VS Code a vraťte se do terminálu prohlížeče a spusťte az loginho znovu.
    • Nebo po zobrazení chyby localhost v prohlížeči zkopírujte adresu URL z prohlížeče a spusťte curl "<URL>" ji na nové kartě terminálu. Měla by se zobrazit odpověď JSON se zprávou "Přihlásili jste se k Microsoft Azure!".
  2. Po přihlášení azure CLI zobrazí všechna vaše předplatná a označí výchozí předplatné hvězdičkou *. Pokud chcete pokračovat s výchozím předplatným, vyberte Enter. V opačném případě zadejte číslo předplatného Azure, které chcete použít.

  3. Zaregistrujte požadované poskytovatele prostředků ve vašem předplatném:

    Poznámka:

    Tento krok stačí spustit jenom jednou pro každé předplatné. K registraci poskytovatelů prostředků potřebujete oprávnění k provedení /register/action operace, která je součástí rolí Přispěvatel předplatného a Vlastník. Další informace najdete v tématu Poskytovatelé a typy prostředků Azure.

    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"
    
  4. Pomocí příkazu az group create vytvořte ve svém předplatném Azure skupinu prostředků pro uložení všech prostředků:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP
    
  5. Pomocí příkazu az connectedk8s connect povolte cluster Kubernetes a spravujte ho jako součást skupiny prostředků Azure:

    az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
    

    Tip

    Hodnota $CLUSTER_NAME se automaticky nastaví na název vašeho codespace. Pokud chcete použít jiný název, nahraďte proměnnou prostředí.

  6. objectId Získejte aplikaci Microsoft Entra ID, kterou služba Azure Arc používá ve vašem tenantovi, a uložte ji jako proměnnou prostředí. Spusťte následující příkaz přesně tak, jak je napsaný, aniž byste změnili hodnotu GUID.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. Pomocí příkazu az connectedk8s enable-features povolte podporu vlastního umístění v clusteru. Tento příkaz používá objectId aplikaci Microsoft Entra ID, kterou používá služba Azure Arc. Spusťte tento příkaz na počítači, na kterém jste nasadili cluster Kubernetes:

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

Vytvoření účtu úložiště a registru schématu

Registr schématu je synchronizované úložiště, které ukládá definice zpráv v cloudu i na hraničních zařízeních. Operace Azure IoT vyžadují ve vašem clusteru registr schématu. Registr schématu vyžaduje účet úložiště Azure pro informace o schématu uložené v cloudu.

Příkaz k vytvoření registru schématu v této části vyžaduje oprávnění Microsoft.Authorization/roleAssignments/write na úrovni skupiny prostředků. Toto oprávnění slouží k udělení role přispěvatele registru schématu, aby mohl zapisovat do účtu úložiště.

V terminálu Codespaces spusťte následující příkazy rozhraní příkazového řádku.

  1. Nastavte proměnné prostředí pro prostředky, které vytvoříte v této části.

    Zástupný symbol Hodnota
    <STORAGE_ACCOUNT_NAME> Název účtu úložiště. Názvy účtů úložiště musí mít délku 3 až 24 znaků a obsahují jenom číslice a malá písmena.
    <SCHEMA_REGISTRY_NAME> Název registru schématu.
    <SCHEMA_REGISTRY_NAMESPACE> Název oboru názvů registru schématu Obor názvů jednoznačně identifikuje registr schématu v rámci tenanta.
    STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
    
  2. Vytvořte účet úložiště s povoleným hierarchickým oborem názvů.

    az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
    
  3. Vytvořte registr schématu, který se připojuje k vašemu účtu úložiště. Tento příkaz také vytvoří kontejner objektů blob označovaný jako schémata v účtu úložiště.

    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)
    

Nasazení operací Azure IoT

V této části nakonfigurujete cluster se závislostmi pro komponenty operací Azure IoT a pak nasadíte operace Azure IoT.

V terminálu Codespaces spusťte následující příkazy rozhraní příkazového řádku.

  1. Inicializace clusteru pro operace Azure IoT

    Tip

    Příkaz init se musí spustit jenom jednou na cluster. Pokud používáte cluster, který už má nasazenou nejnovější verzi operace Azure IoT, můžete tento krok přeskočit.

    az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
    

    Dokončení tohoto příkazu může trvat několik minut. Průběh nasazení můžete sledovat v terminálu.

  2. Nasazení operací Azure IoT

    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
    

    Dokončení tohoto příkazu může trvat několik minut. Průběh nasazení můžete sledovat v terminálu.

    Pokud se zobrazí chyba s informací , že pro přístup k vašemu prostředku je potřeba spravovat vaše zařízení, spusťte az login to znovu a ujistěte se, že se přihlašujete interaktivně pomocí prohlížeče.

Zobrazení prostředků v clusteru

Po dokončení nasazení můžete pomocí příkazů kubectl sledovat změny v clusteru nebo, protože je cluster povolený arc, můžete použít Azure Portal.

Pokud chcete zobrazit pody v clusteru, spusťte následující příkaz:

kubectl get pods -n azure-iot-operations

Pokud chcete zobrazit prostředky na webu Azure Portal, postupujte následovně:

  1. Na webu Azure Portal přejděte do skupiny prostředků, která obsahuje vaši instanci operace Azure IoT, nebo vyhledejte a vyberte Operace Azure IoT.

  2. Vyberte název vaší instance Azure IoT Operations.

  3. Na stránce Přehled vaší instance vyberte kartu Souhrn prostředků a zobrazte stav zřizování prostředků nasazených do clusteru.

    Snímek obrazovky znázorňující instanci operací Azure IoT v clusteru s podporou Arc

Jak jsme tento problém vyřešili?

V tomto rychlém startu jste nakonfigurovali cluster Kubernetes s podporou Arc, aby mohl bezpečně komunikovat s komponentami operací Azure IoT. Potom jste tyto komponenty nasadili do clusteru. V tomto testovacím scénáři máte jeden cluster Kubernetes, který běží v Codespaces. V produkčním scénáři ale můžete stejným postupem nasadit úlohy do mnoha clusterů napříč mnoha lokalitami.

Vyčištění prostředků

Pokud budete pokračovat k dalšímu rychlému startu, ponechte všechny prostředky.

Pokud chcete odebrat nasazení operací Azure IoT, ale zachovat cluster, použijte příkaz az iot ops delete :

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Pokud chcete odstranit všechny prostředky, které jste vytvořili pro účely tohoto rychlého startu, odstraňte cluster Kubernetes, ve kterém jste nasadili operace Azure IoT, a pak odeberte skupinu prostředků Azure, která obsahovala cluster.

Pokud jste pro tyto rychlé starty použili Codespaces, odstraňte codespace z GitHubu.

Další krok