Szybki start: wdrażanie usługi Azure IoT Operations Preview w klastrze Kubernetes z obsługą usługi Arc

Ważne

Usługa Azure IoT Operations Preview — włączona przez usługę Azure Arc jest obecnie dostępna w wersji zapoznawczej. Nie należy używać tego oprogramowania w wersji zapoznawczej w środowiskach produkcyjnych.

Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.

W tym przewodniku Szybki start wdrożysz pakiet usług IoT w klastrze Kubernetes z obsługą usługi Azure Arc, aby umożliwić zdalne zarządzanie urządzeniami i obciążeniami. Operacje usługi Azure IoT to cyfrowy pakiet operacji obejmujący usługę Azure IoT Orchestrator (wersja zapoznawcza). Ten przewodnik Szybki start przeprowadzi Cię przez proces wdrażania tych usług w klastrze Kubernetes przy użyciu programu Orchestrator. Na końcu przewodnika Szybki start masz klaster, którym można zarządzać z chmury, która generuje przykładowe dane do użycia w poniższych przewodnikach Szybki start.

Usługi wdrożone w tym przewodniku Szybki start obejmują:

Poniższe przewodniki Szybki start w tej serii bazują na tym, aby zdefiniować przykładowe zasoby, potoki przetwarzania danych i wizualizacje. Jeśli chcesz wdrożyć operacje usługi Azure IoT w celu uruchamiania własnych obciążeń, zobacz Przygotowywanie klastra Kubernetes z obsługą usługi Azure Arc i Wdrażanie rozszerzeń usługi Azure IoT Operations Preview w klastrze Kubernetes.

Zanim rozpoczniesz

Ta seria przewodników Szybki start ma na celu umożliwienie oceny kompleksowego scenariusza przy użyciu operacji usługi Azure IoT. W prawdziwym środowisku deweloperskim lub produkcyjnym te zadania będą wykonywane przez wiele zespołów pracujących razem, a niektóre zadania mogą wymagać podwyższonych uprawnień.

Aby uzyskać najlepsze nowe środowisko użytkownika, zalecamy korzystanie z bezpłatnego konta platformy Azure, aby mieć uprawnienia właściciela do zasobów w tych przewodnikach Szybki start. Zalecamy również używanie usługi GitHub Codespaces jako środowiska wirtualnego, w którym można szybko rozpocząć wdrażanie zasobów i uruchamianie poleceń bez instalowania nowych narzędzi na własnych maszynach. Aby uzyskać więcej informacji na temat tych opcji, przejdź do wymagań wstępnych.

Gdy wszystko będzie gotowe, aby dowiedzieć się więcej o poszczególnych rolach i zadaniach, przewodniki z instrukcjami zawierają bardziej szczegółowe informacje dotyczące implementacji i uprawnień.

Wymagania wstępne

Zapoznaj się z wymaganiami wstępnymi opartymi na środowisku używanym do hostowania klastra Kubernetes.

W tym przewodniku Szybki start zalecamy używanie środowiska wirtualnego (GitHub Codespaces) jako szybkiego sposobu rozpoczęcia pracy bez instalowania nowych narzędzi.

W ramach tego przewodnika Szybki start utworzysz klaster w usługach GitHub Codespaces, AKS Edge Essentials lub K3s w systemie Ubuntu Linux. Jeśli chcesz ponownie uruchomić ten przewodnik Szybki start z klastrem, w którym wdrożono już operacje usługi Azure IoT, zapoznaj się z krokami w temacie Czyszczenie zasobów w celu odinstalowania operacji usługi Azure IoT przed kontynuowaniem.

Jaki problem rozwiążemy?

Operacje usługi Azure IoT to pakiet usług danych uruchamianych w klastrach Kubernetes. Chcesz, aby te klastry były zarządzane zdalnie z chmury i mogły bezpiecznie komunikować się z zasobami i punktami końcowymi chmury. W tym przewodniku Szybki start rozwiążemy te problemy z następującymi zadaniami:

  1. Połączenie klastra Kubernetes do usługi Azure Arc na potrzeby zdalnego zarządzania.
  2. Utwórz usługę Azure Key Vault, aby zarządzać wpisami tajnymi dla klastra.
  3. Skonfiguruj klaster przy użyciu magazynu wpisów tajnych i jednostki usługi w celu komunikowania się z zasobami w chmurze.
  4. Wdrażanie operacji usługi Azure IoT w klastrze.

Połączenie klastra Kubernetes do usługi Azure Arc

Operacje usługi Azure IoT powinny działać w każdym klastrze Kubernetes zgodnym ze standardami Cloud Native Computing Foundation (CNCF). W tym przewodniku Szybki start użyj usług GitHub Codespaces, AKS Edge Essentials w systemie Windows lub K3s w systemie Ubuntu Linux.

W tej sekcji utworzysz nowy klaster i połączysz go z usługą Azure Arc. Jeśli chcesz ponownie użyć klastra wdrożonego wcześniej operacji usługi Azure IoT, przed kontynuowaniem zapoznaj się z instrukcjami w temacie Czyszczenie zasobów, aby odinstalować operacje usługi Azure IoT.

Użyj usługi GitHub Codespaces, aby wypróbować operacje usługi Azure IoT w klastrze Kubernetes bez instalowania niczego na komputerze lokalnym. Usługa Azure-Samples/explore-iot-operations codespace jest wstępnie skonfigurowana przy użyciu następujących elementów:

Ważne

Przestrzeń kodu można łatwo skonfigurować i usunąć później, ale nie są one odpowiednie do oceny wydajności lub testowania skalowania. Użyj usługi GitHub Codespaces tylko do eksploracji.

Aby rozpocząć pracę z przestrzenią kodu:

  1. Utwórz przestrzeń kodu w usłudze GitHub Codespaces.

    Tworzenie przestrzeni kodu explore-iot-operations

  2. Podaj następujące zalecane wpisy tajne dla przestrzeni kodu:

    Parametr Wartość
    SUBSCRIPTION_ID Identyfikator subskrypcji platformy Azure.
    RESOURCE_GROUP Nazwa nowej grupy zasobów platformy Azure, w której zostanie utworzony klaster.
    LOKALIZACJA Region świadczenia usługi Azure blisko Ciebie. Następujące regiony są obsługiwane w publicznej wersji zapoznawczej: eastus, eastus2, westus2, westus2, westus3, westeurope lub northeurope.

    Napiwek

    Wartości podane w tym kroku jako wpisy tajne są zapisywane na koncie usługi GitHub, które mają być używane w tych i przyszłych przestrzeniach kodu. Są one również automatycznie dodawane jako zmienne środowiskowe w terminalu codespace i można użyć tych zmiennych środowiskowych w poleceniach interfejsu wiersza polecenia w następnej sekcji.

  3. Wybierz pozycję Utwórz nową przestrzeń kodu.

  4. Gdy przestrzeń kodu będzie gotowa, wybierz przycisk menu w lewym górnym rogu, a następnie wybierz pozycję Otwórz w programie VS Code Desktop.

    Otwieranie pulpitu programu VS Code

  5. Jeśli zostanie wyświetlony monit, zainstaluj rozszerzenie GitHub Codespaces dla programu Visual Studio Code i zaloguj się do usługi GitHub.

  6. W programie Visual Studio Code wybierz pozycję Wyświetl>terminal.

    Użyj tego terminalu, aby uruchomić wszystkie polecenia wiersza polecenia i interfejsu wiersza polecenia do zarządzania klastrem.

Aby połączyć klaster z usługą Azure Arc:

  1. Na maszynie, na której wdrożono klaster Kubernetes lub terminal usługi Codespace, zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure:

    az login
    

    Napiwek

    Jeśli używasz usługi GitHub codespace w przeglądarce, az login zwraca błąd localhost w oknie przeglądarki po zalogowaniu. Aby rozwiązać ten problem, wykonaj jedną z następujących czynności:

    • Otwórz przestrzeń kodu na pulpicie programu VS Code, a następnie wróć do terminalu przeglądarki i ponownie uruchom az loginpolecenie .
    • Lub po wystąpieniu błędu localhost w przeglądarce skopiuj adres URL z przeglądarki i uruchom curl "<URL>" polecenie na nowej karcie terminalu. Powinna zostać wyświetlona odpowiedź JSON z komunikatem "Zalogowano się do platformy Microsoft Azure!".
  2. Ustaw zmienne środowiskowe dla subskrypcji platformy Azure, lokalizacji, nowej grupy zasobów i nazwy klastra, które będą wyświetlane w grupie zasobów.

    Jeśli używasz usługi GitHub Codespaces i konfigurujesz te wartości jako zalecane wpisy tajne podczas tworzenia przestrzeni kodu, pomiń ten krok. Przestrzeń kodu automatycznie ustawia nazwę klastra na taką samą jak nazwa przestrzeni kodu.

    # 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>
    
    # Name of the Arc-enabled cluster to create in your resource group
    export CLUSTER_NAME=<NEW_CLUSTER_NAME>
    
  3. Ustaw kontekst subskrypcji platformy Azure dla wszystkich poleceń:

    az account set -s $SUBSCRIPTION_ID
    
  4. Zarejestruj wymaganych dostawców zasobów w ramach subskrypcji:

    Uwaga

    Ten krok musi być uruchamiany tylko raz na subskrypcję.

    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"
    
  5. Użyj polecenia az group create, aby utworzyć grupę zasobów w ramach subskrypcji platformy Azure w celu przechowywania wszystkich zasobów:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  6. Użyj polecenia az connectedk8s connect, aby włączyć klaster Kubernetes i zarządzać nim w ramach grupy zasobów platformy Azure:

    az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  7. objectId Pobierz aplikację Microsoft Entra ID używaną przez usługę Azure Arc i zapisuj ją jako zmienną środowiskową.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  8. Użyj polecenia az connectedk8s enable-features, aby włączyć obsługę lokalizacji niestandardowej w klastrze. To polecenie używa objectId aplikacji Microsoft Entra ID używanej przez usługę Azure Arc. Uruchom to polecenie na maszynie, na której wdrożono klaster Kubernetes:

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

Weryfikowanie klastra

Użyj rozszerzenia Operacje usługi Azure IoT dla interfejsu wiersza polecenia platformy Azure, aby sprawdzić, czy host klastra został poprawnie skonfigurowany do wdrożenia przy użyciu polecenia verify-host na hoście klastra:

az iot ops verify-host

To polecenie pomocnika sprawdza łączność z punktami końcowymi usług Azure Resource Manager i Microsoft Container Registry.

Wdrażanie usługi Azure IoT Operations (wersja zapoznawcza)

W tej sekcji użyjesz polecenia az iot ops init , aby skonfigurować klaster, aby mógł bezpiecznie komunikować się ze składnikami operacji usługi Azure IoT i magazynem kluczy, a następnie wdrożyć operacje usługi Azure IoT.

  1. Tworzenie magazynu kluczy. Zastąp parametry symbolu zastępczego własnymi informacjami.

    Symbol zastępczy Wartość
    RESOURCE_GROUP Nazwa grupy zasobów, która zawiera połączony klaster.
    KEYVAULT_NAME Nazwa nowego magazynu kluczy.
    az keyvault create --enable-rbac-authorization false --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP
    

    Napiwek

    Możesz użyć istniejącego magazynu kluczy dla wpisów tajnych, ale sprawdź, czy model uprawnień jest ustawiony na zasady dostępu do magazynu. To ustawienie można sprawdzić w witrynie Azure Portal w sekcji Konfiguracja dostępu istniejącego magazynu kluczy. Możesz też użyć polecenia az keyvault show , aby sprawdzić, czy enableRbacAuthorization jest to fałsz.

  2. Uruchom następujące polecenie interfejsu wiersza polecenia na komputerze deweloperskim lub w terminalu usługi Codespace. Zastąp parametry symbolu zastępczego własnymi informacjami.

    Symbol zastępczy Wartość
    CLUSTER_NAME Nazwa połączonego klastra.
    RESOURCE_GROUP Nazwa grupy zasobów, która zawiera połączony klaster.
    KEYVAULT_NAME Nazwa magazynu kluczy.
    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)
    

    Jeśli wystąpi błąd informujący, że urządzenie jest wymagane do zarządzania dostępem do zasobu, uruchom ponownie polecenie az login i upewnij się, że logujesz się interaktywnie za pomocą przeglądarki.

    Napiwek

    Jeśli aplikacja az iot ops init została uruchomiona wcześniej, automatycznie utworzyła rejestrację aplikacji w usłudze Microsoft Entra ID. Możesz ponownie użyć tej rejestracji, zamiast tworzyć nowe za każdym razem. Aby użyć istniejącej rejestracji aplikacji, dodaj opcjonalny parametr --sp-app-id <APPLICATION_CLIENT_ID>.

Wyświetlanie zasobów w klastrze

Podczas wdrażania można obserwować zasoby stosowane do klastra. Polecenia kubectl umożliwiają obserwowanie zmian w klastrze lub, ponieważ klaster jest włączony w usłudze Arc, można użyć witryny Azure Portal.

Aby wyświetlić zasobniki w klastrze, uruchom następujące polecenie:

kubectl get pods -n azure-iot-operations

Ukończenie wdrożenia może potrwać kilka minut. Kontynuuj uruchamianie get pods polecenia, aby odświeżyć widok.

Aby wyświetlić klaster w witrynie Azure Portal, wykonaj następujące kroki:

  1. W witrynie Azure Portal przejdź do grupy zasobów zawierającej klaster.

  2. W obszarze Przegląd grupy zasobów wybierz nazwę klastra.

  3. W klastrze wybierz pozycję Rozszerzenia w sekcji Ustawienia menu.

    Zrzut ekranu przedstawiający wdrożone rozszerzenia w klastrze z obsługą usługi Arc.

    Widać, że klaster uruchamia rozszerzenia typu microsoft.iotoperations.x, czyli nazwę grupy dla wszystkich składników operacji usługi Azure IoT i usługi orkiestracji. Te rozszerzenia mają unikatowy sufiks identyfikujący wdrożenie. Na poprzednim zrzucie ekranu ten sufiks to -z2ewy.

    Istnieje również rozszerzenie o nazwie akvsecretsprovider. To rozszerzenie jest dostawcą wpisów tajnych skonfigurowanym i zainstalowanym w klastrze za az iot ops init pomocą polecenia . Podczas testowania możesz usunąć i ponownie zainstalować składniki operacji usługi Azure IoT, ale zachować rozszerzenie dostawcy wpisów tajnych w klastrze.

  4. Zanotuj pełną nazwę rozszerzenia o nazwie mq-.... Ta nazwa jest używana w poniższych przewodnikach Szybki start.

Jak rozwiązaliśmy ten problem?

W tym przewodniku Szybki start skonfigurowano klaster Kubernetes z obsługą usługi Arc, aby mógł bezpiecznie komunikować się ze składnikami operacji usługi Azure IoT. Następnie wdrożono te składniki w klastrze. W tym scenariuszu testowym masz jeden klaster Kubernetes, który prawdopodobnie działa lokalnie na maszynie. W scenariuszu produkcyjnym można jednak użyć tych samych kroków, aby wdrożyć obciążenia w wielu klastrach w wielu lokacjach.

Czyszczenie zasobów

Jeśli przejdziesz do następnego przewodnika Szybki start, zachowaj wszystkie zasoby.

Jeśli chcesz usunąć wdrożenie operacji usługi Azure IoT, ale zaplanuj ponowne zainstalowanie go w klastrze, pamiętaj, aby zachować dostawcę wpisów tajnych w klastrze.

  1. W grupie zasobów w witrynie Azure Portal wybierz klaster.

  2. Na stronie zasobu klastra wybierz pozycję Rozszerzenia.

  3. Wybierz wszystkie rozszerzenia typu microsoft.iotoperations.x i microsoft.deviceregistry.assets, a następnie wybierz pozycję Odinstaluj. Nie musisz odinstalować rozszerzenia dostawcy wpisów tajnych:

    Zrzut ekranu przedstawiający rozszerzenia do odinstalowania.

  4. Wróć do grupy zasobów i wybierz zasób lokalizacji niestandardowej, a następnie wybierz pozycję Usuń.

Jeśli chcesz usunąć wszystkie zasoby utworzone na potrzeby tego przewodnika Szybki start, usuń klaster Kubernetes, w którym wdrożono operacje usługi Azure IoT, i usuń grupę zasobów platformy Azure zawierającą klaster.

Następny krok