Udostępnij za pośrednictwem


Szybki start: uruchamianie usługi Azure IoT Operations Preview w usłudze GitHub Codespaces przy użyciu platformy K3s

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.

Po udostępnieniu ogólnie dostępnej wersji należy wdrożyć nową instalację operacji usługi Azure IoT. Nie będzie można uaktualnić instalacji w wersji zapoznawczej.

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 usług. 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.

Pozostałe przewodniki Szybki start w tej kompleksowej 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 lokalnym, takim jak Azure Kubernetes Service Edge Essentials lub K3s w systemie Ubuntu, zobacz Szczegóły wdrożenia.

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 wiele zespołów pracujących razem wykonuje te zadania, 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 użyć klastra, który ma już wdrożone operacje usługi Azure IoT, przed kontynuowaniem zapoznaj się z instrukcjami w temacie Czyszczenie zasobów w celu odinstalowania operacji usługi Azure IoT.

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 rejestr schematów.
  3. Wdrażanie operacji usługi Azure IoT w klastrze.

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

Operacje usługi Azure IoT obsługują podstawowe elementy usługi Azure Kubernetes Service (AKS) Edge i K3s w klastrach ubuntu. Jednak w przypadku szybkości i wygody ten przewodnik Szybki start używa usługi GitHub Codespaces do hostowania klastra.

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 w systemie Windows lub Ubuntu, 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 w celu odinstalowania operacji 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. Aby uzyskać listę aktualnie obsługiwanych regionów, zobacz Obsługiwane regiony.

    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 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 tworzy zmienną środowiskową CLUSTER_NAME , która jest ustawiana z nazwą 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 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. Po zalogowaniu interfejs wiersza polecenia platformy Azure wyświetla wszystkie subskrypcje i wskazuje domyślną subskrypcję gwiazdką *. Aby kontynuować subskrypcję domyślną, wybierz pozycję Enter. W przeciwnym razie wpisz liczbę subskrypcji platformy Azure, której chcesz użyć.

  3. Zarejestruj wymaganych dostawców zasobów w ramach subskrypcji:

    Uwaga

    Ten krok musi być uruchamiany tylko raz na subskrypcję. Aby zarejestrować dostawców zasobów, musisz mieć uprawnienia do wykonania /register/action operacji, która jest uwzględniona w rolach Współautor subskrypcji i Właściciel. Aby uzyskać więcej informacji, zobacz Dostawcy zasobów i typy platformy 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. 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
    
  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 --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
    

    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 w dzierżawie i zapisz ją jako zmienną środowiskową. Uruchom następujące polecenie dokładnie zgodnie z zapisem bez zmiany wartości identyfikatora GUID.

    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
    

Tworzenie konta magazynu i rejestru schematów

Operacje usługi Azure IoT wymagają rejestru schematów w klastrze. Rejestr schematów wymaga konta usługi Azure Storage, aby można było synchronizować informacje o schemacie między chmurą a krawędzią.

Polecenie tworzenia rejestru schematów w tej sekcji wymaga uprawnień Microsoft.Authorization/roleAssignments/write na poziomie grupy zasobów.

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

  1. Ustaw zmienne środowiskowe dla zasobów utworzonych w tej sekcji.

    Symbol zastępczy Wartość
    <STORAGE_ACCOUNT_NAME> Nazwa konta magazynu. Nazwy kont magazynu muszą mieć długość od 3 do 24 znaków i zawierać tylko cyfry i małe litery.
    <SCHEMA_REGISTRY_NAME> Nazwa rejestru schematów.
    <SCHEMA_REGISTRY_NAMESPACE> Nazwa przestrzeni nazw rejestru schematów. Przestrzeń nazw jednoznacznie identyfikuje rejestr schematów w dzierżawie.
    export STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    export SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    export SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
    
  2. Utwórz konto magazynu z włączoną hierarchiczną przestrzenią nazw.

    az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
    
  3. Utwórz rejestr schematów, który łączy się z kontem magazynu. To polecenie tworzy również kontener obiektów blob o nazwie schemas na koncie magazynu, jeśli jeszcze nie istnieje.

    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)
    

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

W tej sekcji skonfigurujesz klaster przy użyciu zależności składników operacji usługi Azure IoT, a następnie wdrożysz operacje usługi Azure IoT.

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

  1. Zainicjuj klaster dla operacji usługi Azure IoT.

    Napiwek

    Polecenie init musi być uruchamiane tylko raz na klaster. Jeśli korzystasz z klastra, w którym wdrożono już operacje usługi Azure IoT w wersji 0.8.0, możesz pominąć ten krok.

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

    Wykonanie tego polecenia może potrwać kilka minut. Postęp wdrażania można obserwować w terminalu.

  2. Wdrażanie operacji usługi Azure IoT. Wykonanie tego polecenia trwa kilka minut:

    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
    

    Wykonanie tego polecenia może potrwać kilka minut. Postęp wdrażania można obserwować w terminalu.

    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.

Wyświetlanie zasobów w klastrze

Gdy wdrożenie jest w toku, interfejs postępu interfejsu wiersza polecenia pokazuje etap wdrażania, w którym się znajdujesz. Po zakończeniu wdrażania możesz użyć poleceń kubectl, aby obserwować zmiany w klastrze lub, ponieważ klaster jest włączony w usłudze Arc, możesz użyć witryny Azure Portal.

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

kubectl get pods -n azure-iot-operations

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

  1. W witrynie Azure Portal przejdź do grupy zasobów zawierającej wystąpienie operacji usługi Azure IoT lub wyszukaj i wybierz pozycję Operacje usługi Azure IoT.

  2. Wybierz nazwę wystąpienia operacji usługi Azure IoT.

  3. Na stronie Przegląd wystąpienia karta Rozszerzenia usługi Arc zawiera zasoby wdrożone w klastrze.

    Zrzut ekranu przedstawiający wystąpienie operacji usługi Azure IoT w klastrze z obsługą usługi Arc.

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 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, a następnie usuń grupę zasobów platformy Azure zawierającą klaster.

Jeśli na potrzeby tych przewodników Szybki start użyto usługi Codespaces, usuń środowisko Codespace z usługi GitHub.

Następny krok