Udostępnij za pośrednictwem


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

W tym przewodniku Szybki start wdrożysz operacje usługi Azure IoT w klastrze Kubernetes z obsługą usługi Azure Arc, aby umożliwić zdalne zarządzanie urządzeniami i obciążeniami. Na końcu przewodnika Szybki start masz klaster, którym można zarządzać z chmury. Pozostałe przewodniki Szybki start w tej kompleksowej serii bazują na tym, aby zdefiniować przykładowe zasoby, potoki przetwarzania danych i wizualizacje.

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.

Na potrzeby tego przewodnika Szybki start używamy również usługi GitHub Codespaces jako środowiska wirtualnego, aby umożliwić przetestowanie scenariusza bez instalowania nowych narzędzi na własnych maszynach. Jeśli jednak chcesz wdrożyć operacje usługi Azure IoT w klastrze lokalnym w systemie Ubuntu lub Usłudze Azure Kubernetes Service (AKS), zobacz Przygotowywanie klastra Kubernetes z obsługą usługi Azure Arc.

Wymagania wstępne

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 w usłudze GitHub Codespaces.
  2. Połącz klaster z usługą Azure Arc w celu zdalnego zarządzania.
  3. Utwórz rejestr schematów.
  4. Wdrażanie operacji usługi Azure IoT w klastrze.

Tworzenie klastra

Operacje usługi Azure IoT można wdrożyć w usłudze K3s w systemach Ubuntu, Azure Kubernetes Service (AKS) Edge Essentials i AKS w usłudze Azure Local. Jednak w przypadku szybkości i wygody ten przewodnik Szybki start używa usługi GitHub Codespaces do hostowania klastra. 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.

Uwaga

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.

Środowisko Codespaces jest wystarczające do wykonania kroków szybkiego startu, ale nie obsługuje zaawansowanych konfiguracji.

W tej sekcji utworzysz nowy klaster. 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.

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.

    Zrzut ekranu przedstawiający otwieranie przestrzeni kodu w programie VS Code Desktop.

  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.

Łączenie klastra z usługą Azure Arc

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

Tworzenie konta magazynu i rejestru schematów

Rejestr schematów to zsynchronizowane repozytorium, które przechowuje definicje komunikatów zarówno w chmurze, jak i na brzegu sieci. Operacje usługi Azure IoT wymagają rejestru schematów w klastrze. Rejestr schematów wymaga konta usługi Azure Storage dla informacji o schemacie przechowywanych w chmurze.

Polecenie tworzenia rejestru schematów w tej sekcji wymaga uprawnień Microsoft.Authorization/roleAssignments/write na poziomie grupy zasobów. To uprawnienie służy do nadania rejestrowi schematów roli współautora, dzięki czemu może zapisywać dane na koncie magazynu.

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.
    STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    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.

    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 operacji usługi Azure IoT

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, który ma już wdrożoną najnowszą wersję operacji usługi Azure IoT, 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.

    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

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 wybierz kartę Podsumowanie zasobów, aby wyświetlić stan aprowizacji zasobów wdrożonych 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 uruchomiony w usłudze Codespaces. 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