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ę iaz 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:
Otwórz okno programu PowerShell z podwyższonym poziomem uprawnień i zmień katalog na folder roboczy.
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
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
[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:
- Wykonaj krok 1, aby utworzyć zasób bramy Arc.
- Zanotuj adresy URL wymienione w kroku 2, aby dodać je do
proxy-skip-range
w kroku 2. - Wykonaj krok 3a w dokumentacji bramy Arc i zapisz identyfikator bramy.
- W AksEdgeQuickStartForAio.ps1znajdź definicję
$aideuserConfig
. Ustaw wartośćGatewayResourceId
na zapisany w poprzednim kroku identyfikator bramy.
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 podanohttp(s)_proxy
, należy również zaktualizowaćno_proxy
dolocalhost,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