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ą:
- Azure IoT Orchestrator (wersja zapoznawcza)
- Azure IoT MQ (wersja zapoznawcza)
- Wersja zapoznawcza brokera usługi Azure IoT OPC UA z symulowanym zasobem termostatu w celu rozpoczęcia generowania danych
- Azure IoT Akri (wersja zapoznawcza)
- Wersja zapoznawcza usługi Azure Device Registry
- Azure IoT Layered Network Management (wersja zapoznawcza)
- Możliwość obserwowania
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:
Subskrypcja Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz je bezpłatnie .
Konto usługi GitHub.
Program Visual Studio Code zainstalowany na komputerze deweloperskim. Aby uzyskać więcej informacji, zobacz Pobieranie programu Visual Studio Code.
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:
- Utwórz klaster Kubernetes i połącz go z usługą Azure Arc w celu zdalnego zarządzania.
- Utwórz usługę Azure Key Vault, aby zarządzać wpisami tajnymi dla klastra.
- Skonfiguruj klaster przy użyciu magazynu wpisów tajnych i jednostki usługi w celu komunikowania się z zasobami w chmurze.
- 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:
- K3s uruchomione w K3d dla lekkiego klastra Kubernetes
- Interfejs wiersza polecenia platformy Azure
- Platforma Kubectl do zarządzania zasobami kubernetes
- Inne przydatne narzędzia, takie jak Helm i k9s
Aby utworzyć przestrzeń kodu i klaster, wykonaj następujące kroki:
Utwórz przestrzeń kodu w usłudze GitHub Codespaces.
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.Wybierz pozycję Utwórz nową przestrzeń kodu.
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.
Jeśli zostanie wyświetlony monit, zainstaluj rozszerzenie GitHub Codespaces dla programu Visual Studio Code i zaloguj się do usługi GitHub.
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:
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 login
polecenie . - 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!".
- Otwórz przestrzeń kodu na pulpicie programu VS Code, a następnie wróć do terminalu przeglądarki i ponownie uruchom
Ustaw kontekst subskrypcji platformy Azure dla wszystkich poleceń:
az account set -s $SUBSCRIPTION_ID
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"
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
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.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)
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.
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.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:
W witrynie Azure Portal przejdź do grupy zasobów zawierającej klaster.
W obszarze Przegląd grupy zasobów wybierz nazwę klastra.
W klastrze wybierz pozycję Rozszerzenia w sekcji Ustawienia menu.
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.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.