Udostępnij za pośrednictwem


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 klastrze, takim jak AKS Edge Essentials, aby uruchomić własne obciążenia, zobacz Przygotowywanie klastra Kubernetes z obsługą usługi Azure Arc i Wdrażanie rozszerzeń usługi Azure IoT Operations w wersji zapoznawczej w klastrze Kubernetes.

Zanim rozpoczniesz

Ta seria przewodników Szybki start ułatwia rozpoczęcie pracy z operacjami usługi Azure IoT tak szybko, jak to możliwe, aby można było ocenić scenariusz kompleksowe. 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. Udostępniamy również kroki korzystania z usługi GitHub Codespaces jako środowiska wirtualnego, w którym można szybko rozpocząć wdrażanie zasobów i uruchamiać polecenia bez instalowania nowych narzędzi na własnych maszynach.

Wymagania wstępne

W tym przewodniku Szybki start utworzysz klaster Kubernetes w celu otrzymania wdrożenia operacji usługi Azure IoT.

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.

Przed rozpoczęciem przygotuj następujące wymagania wstępne:

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. Utwórz klaster Kubernetes i połącz go z usługą Azure Arc w celu 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.

Łączenie klastra Kubernetes z usługą Azure Arc

Operacje usługi Azure IoT powinny działać w każdym klastrze Kubernetes zgodnym ze standardami Cloud Native Computing Foundation (CNCF). Aby uzyskać szybkość i wygodę, ten przewodnik Szybki start używa usługi GitHub Codespaces do hostowania klastra.

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 dowiedzieć się, jak wdrożyć operacje usługi Azure IoT w klastrze produkcyjnym, takim jak AKS Edge Essentials, zobacz Przygotowywanie klastra Kubernetes z obsługą usługi Azure Arc.

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:

Aby utworzyć przestrzeń kodu i klaster, wykonaj następujące kroki:

  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.

    Ponadto ta przestrzeń kodu automatycznie tworzy zmienną środowiskową CLUSTER_NAME , która jest ustawiana przy użyciu nazwy przestrzeni kodu.

  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. W terminalu usługi Codespace zaloguj się do interfejsu wiersza polecenia platformy Azure:

    az login
    

    Napiwek

    Jeśli używasz środowiska codespace usługi GitHub w przeglądarce, a nie w programie VS Code Desktop, uruchomienie zwraca az login błąd localhost. Aby naprawić błąd, wykonaj następujące 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 kontekst subskrypcji platformy Azure dla wszystkich poleceń:

    az account set -s $SUBSCRIPTION_ID
    
  3. 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"
    
  4. 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
    
  5. 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
    

    Napiwek

    Wartość parametru $CLUSTER_NAME jest automatycznie ustawiana na nazwę przestrzeni kodu. Zastąp zmienną środowiskową, jeśli chcesz użyć innej nazwy.

  6. 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)
    
  7. 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.

    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.

Uruchom następujące polecenia interfejsu wiersza polecenia w terminalu usługi Codespaces.

  1. Tworzenie magazynu kluczy. W tym scenariuszu użyjemy tej samej nazwy i grupy zasobów co klaster. Nazwy magazynu kluczy mają maksymalną długość 24 znaków, więc następujące polecenie obcina zmienną CLUSTER_NAMEśrodowiskową w razie potrzeby.

    az keyvault create --enable-rbac-authorization false --name ${CLUSTER_NAME:0:24} --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. Wdrażanie operacji usługi Azure IoT. Wykonanie tego polecenia trwa kilka minut:

    az iot ops init --simulate-plc --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --kv-id $(az keyvault show --name ${CLUSTER_NAME:0:24} -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 -tg45l.

    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 chcesz zachować klaster, użyj polecenia az iot ops delete .

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

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