Udostępnij za pośrednictwem


Tworzenie i konfigurowanie klastra AKS Edge Essentials, który może uruchamiać operacje usługi Azure IoT

Azure Kubernetes Service (AKS) Edge Essentials to jedna z obsługiwanych platform klastrów dla operacji usługi Azure IoT. Za pomocą usługi AKS Edge Essentials można utworzyć klaster Kubernetes zarządzany przez firmę Microsoft i wdrożyć na nim operacje usługi Azure IoT jako obciążenie. W tym artykule opisano kroki uruchamiania skryptu, który tworzy klaster Kubernetes usługi AKS Edge Essentials z wymaganą konfiguracją operacji usługi Azure IoT, a następnie łączy ten klaster z usługą Azure Arc.

Uwaga

Operacje usługi Azure IoT obsługują podstawowe elementy usługi AKS Edge wdrożone tylko w klastrach z pojedynczymi maszynami k3s. Klastry K8s nie są obsługiwane w przypadku AIO i wdrażanie klastrów na wielu maszynach jest funkcją eksperymentalną.

Wymagania wstępne dotyczące uruchamiania skryptu

Do uruchomienia skryptu potrzebne są następujące wymagania wstępne:

  • Subskrypcja platformy Azure z rolą Właściciel lub kombinacją ról Współautor i Administrator dostępu użytkowników. Poziom dostępu możesz sprawdzić, przechodząc do subskrypcji, wybierając pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami) po lewej stronie witryny Azure Portal, a następnie wybierając pozycję Wyświetl mój dostęp. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz je bezpłatnie .

  • Interfejs wiersza polecenia platformy Azure w wersji 2.64.0 lub nowszej zainstalowany na komputerze deweloperskim. Użyj az --version polecenia , aby sprawdzić wersję i az upgrade zaktualizować w razie potrzeby. Aby uzyskać więcej informacji, zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure.

  • Zainstaluj najnowszą wersję rozszerzeń connectedk8s dla interfejsu wiersza polecenia platformy Azure:

    az extension add --upgrade --name connectedk8s 
    
  • Wymagania sprzętowe: upewnij się, że maszyna ma co najmniej 16 GB dostępnej pamięci RAM, 4 dostępne procesory wirtualne i 52 GB wolnego miejsca na dysku zarezerwowanego dla operacji usługi Azure IoT.

Tworzenie klastra z obsługą usługi Arc

Skrypt AksEdgeQuickStartForAio.ps1 automatyzuje proces tworzenia i łączenia klastra oraz jest zalecaną ścieżką do wdrażania operacji usługi Azure IoT w usłudze AKS Edge Essentials. Skrypt wykonuje następujące zadania:

  • Pobiera najnowsze pliki k3s msi usługi AKS Edge Essentials z tego repozytorium.
  • Instaluje AKS Edge Essentials, a następnie wdraża i tworzy jednowęzłowy klaster k3s na maszynie z systemem Windows.
  • Łączy się z subskrypcją platformy Azure, tworzy grupę zasobów, jeśli jeszcze nie istnieje, i łączy klaster z usługą Arc w celu utworzenia klastra Kubernetes z obsługą usługi Arc.
  • Włącza funkcję lokalizacji niestandardowej w klastrze Kubernetes z obsługą usługi Arc.
  • Włącza funkcję federacji tożsamości obciążenia w klastrze Kubernetes z obsługą usługi Arc.
  • Wdraża aprowizację ścieżki lokalnej.
  • Konfiguruje reguły zapory na komputerze z systemem Windows hosta dla brokera MQTT.
  • Na maszynie wirtualnej z systemem Linux, która służy jako węzeł płaszczyzny sterowania Kubernetes:
    • Konfiguruje domyślny zakres adresów IP usługi Kubernetes dla domyślnego zakresu adresów IP 10.96.0.0/28.
    • Konfiguruje reguły tabeli adresów IP:
      • sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9110 -j ACCEPT
      • sudo iptables -A INPUT -p tcp --dport (10124, 8420, 2379, 50051) -j ACCEPT

Aby uruchomić skrypt szybkiego startu, wykonaj następujące kroki:

  1. Otwórz okno programu PowerShell z podwyższonym poziomem uprawnień i zmień katalog na folder roboczy.

  2. objectId Pobierz aplikację Microsoft Entra ID używaną przez usługę Azure Arc w dzierżawie. Uruchom następujące polecenie dokładnie zgodnie z zapisem bez zmiany wartości identyfikatora GUID.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Uruchom następujące polecenia:

    $url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStartForAio.ps1"
    Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStartForAio.ps1
    Unblock-File .\AksEdgeQuickStartForAio.ps1
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
    
  4. [Opcjonalnie] brama Azure Arc (wersja zapoznawcza) umożliwia dołączanie infrastruktury do usługi Azure Arc przy użyciu tylko 7 punktów końcowych. Aby używać Azure Arc Gateway z operacjami Azure IoT na AKS Edge Essentials:

  5. Uruchom następujące polecenie i zastąp wartości symboli zastępczych swoimi informacjami:

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
    
    Symbol zastępczy Wartość
    SUBSCRIPTION_ID Identyfikator subskrypcji platformy Azure. Jeśli nie znasz identyfikatora subskrypcji, zobacz Znajdowanie subskrypcji platformy Azure.
    TENANT_ID Identyfikator dzierżawy firmy Microsoft Entra. Jeśli nie znasz identyfikatora dzierżawy, zobacz Znajdowanie dzierżawy firmy Microsoft Entra.
    RESOURCE_GROUP_NAME Nazwa istniejącej grupy zasobów lub nazwa nowej grupy zasobów do utworzenia. Obsługiwane jest tylko jedno wystąpienie operacji usługi Azure IoT na grupę zasobów.
    LOKALIZACJA Region świadczenia usługi Azure blisko Ciebie. Aby uzyskać listę obsługiwanych regionów świadczenia usługi Azure IoT Operations, zobacz Obsługiwane regiony.
    CLUSTER_NAME Nazwa nowego klastra do utworzenia.
    ARC_APP_OBJECT_ID Wartość identyfikatora obiektu pobrana w kroku 2.

    Istnieją inne opcjonalne flagi, które można uwzględnić podczas uruchamiania AksEdgeQuickStartForAio.ps1. Opcjonalne flagi są następujące:

    Flagi opcjonalne Wartość
    enableWorkloadIdentity (wersja zapoznawcza) Domyślnie włączone. Chociaż możesz zrezygnować przed wdrożeniem klastra, nie można go włączyć po utworzeniu klastra. Federacja tożsamości obciążenia pracą umożliwia skonfigurowanie tożsamości zarządzanej przypisanej przez użytkownika lub rejestracji aplikacji w usłudze Microsoft Entra ID, aby ufać tokenom od zewnętrznych dostawców tożsamości (IdP), takich jak Kubernetes. Aby skonfigurować federację tożsamości obciążenia, zobacz ten artykuł.
    proxy-https Podaj wartość serwera proxy: https://<proxy-server-ip-address>:<port>.
    proxy-http Podaj wartość serwera proxy: http://<proxy-server-ip-address>:<port>.
    proxy-skip-range Podaj zakres pomijania serwera proxy: <excludedIP>,<excludedCIDR>. Jeśli podano http(s)_proxy, należy również zaktualizować no_proxy do localhost,127.0.0.0/8,192.168.0.0/16,172.17.0.0/16,10.42.0.0/16,10.43.0.0/16,10.96.0.0/12,10.244.0.0/16,.svc,169.254.169.254.

    Możesz dodać te flagi, jak pokazano w poniższym przykładzie:

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>" --enableWorkloadIdentity:false
    

    Ważny

    Funkcje w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają samodzielnego włączenia. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze AKS Edge Essentials są częściowo objęte pomocą techniczną dla klientów na zasadzie najlepszych starań.

    Jeśli podczas wdrażania występują problemy; na przykład jeśli maszyna zostanie ponownie uruchomiona w ramach tego procesu, uruchom ponownie zestaw poleceń.

    Uruchom następujące polecenia, aby sprawdzić, czy wdrożenie zakończyło się pomyślnie:

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    W danych wyjściowych Get-AksEdgeDeploymentInfo polecenia powinien zostać wyświetlony stan Arc klastra: Połączono.

Weryfikowanie klastra

Aby sprawdzić, czy klaster Kubernetes jest włączony w usłudze Azure Arc, uruchom następujące polecenie:

kubectl get deployments,pods -n azure-arc

Dane wyjściowe wyglądają podobnie do następującego przykładu:

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/clusterconnect-agent         1/1     1            1           10m
deployment.apps/extension-manager            1/1     1            1           10m
deployment.apps/clusteridentityoperator      1/1     1            1           10m
deployment.apps/controller-manager           1/1     1            1           10m
deployment.apps/flux-logs-agent              1/1     1            1           10m
deployment.apps/cluster-metadata-operator    1/1     1            1           10m
deployment.apps/extension-events-collector   1/1     1            1           10m
deployment.apps/config-agent                 1/1     1            1           10m
deployment.apps/kube-aad-proxy               1/1     1            1           10m
deployment.apps/resource-sync-agent          1/1     1            1           10m
deployment.apps/metrics-agent                1/1     1            1           10m

NAME                                              READY   STATUS    RESTARTS        AGE
pod/clusterconnect-agent-5948cdfb4c-vzfst         3/3     Running   0               10m
pod/extension-manager-65b8f7f4cb-tp7pp            3/3     Running   0               10m
pod/clusteridentityoperator-6d64fdb886-p5m25      2/2     Running   0               10m
pod/controller-manager-567c9647db-qkprs           2/2     Running   0               10m
pod/flux-logs-agent-7bf6f4bf8c-mr5df              1/1     Running   0               10m
pod/cluster-metadata-operator-7cc4c554d4-nck9z    2/2     Running   0               10m
pod/extension-events-collector-58dfb78cb5-vxbzq   2/2     Running   0               10m
pod/config-agent-7579f558d9-5jnwq                 2/2     Running   0               10m
pod/kube-aad-proxy-56d9f754d8-9gthm               2/2     Running   0               10m
pod/resource-sync-agent-769bb66b79-z9n46          2/2     Running   0               10m
pod/metrics-agent-6588f97dc-455j8                 2/2     Running   0               10m

Następne kroki