Erstellen und Konfigurieren eines AKS Edge Essentials-Clusters, der Azure IoT Operations ausführen kann
Azure Kubernetes Service (AKS) Edge Essentials ist eine der unterstützten Clusterplattformen für Azure IoT Operations. Sie können AKS Edge Essentials verwenden, um einen von Microsoft verwalteten Kubernetes-Cluster zu erstellen und Azure IoT Operations als Workload bereitzustellen. In diesem Artikel werden die Schritte zum Ausführen eines Skripts beschrieben, das einen AKS Edge Essentials Kubernetes-Cluster mit den erforderlichen Konfigurationen für Azure IoT Operations erstellt und diesen Cluster dann mit Azure Arc verbindet.
Hinweis
Azure IoT Operations unterstützt AKS Edge Essentials, wenn sie auf einzelnen Computerclustern bereitgestellt werden. Das Bereitstellen von Clustern auf mehreren Computern ist ein experimentelles Feature.
Voraussetzungen für die Ausführung des Skripts
Zum Ausführen des Skripts benötigen Sie die folgenden Voraussetzungen:
Ein Azure-Abonnement mit der Rolle "Besitzer" oder einer Kombination aus Denwirkenden - und Benutzerzugriffsadministratorrollen . Sie können Ihre Zugriffsebene überprüfen, indem Sie zu Ihrem Abonnement navigieren, auf der linken Seite der Azure-Portal die Zugriffssteuerung (ACCESS Control, IAM) auswählen und dann "Meinen Zugriff anzeigen" auswählen. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Azure CLI, Version 2.64.0 oder höher, installiert auf Ihrem Entwicklungscomputer. Verwenden Sie
az --version
, um Ihre Version zu überprüfen. Bei Bedarf können Sie sie mithilfe vonaz upgrade
aktualisieren. Weitere Informationen finden Sie unter Installieren der Azure CLI.Installieren Sie die neueste Version der connectedk8s-Erweiterungen für Azure CLI:
az extension add --upgrade --name connectedk8s
Hardwareanforderungen: Stellen Sie sicher, dass Ihr Computer mindestens 16 GB verfügbaren RAM, 4 verfügbare vCPUs und 52 GB freien Speicherplatz für Azure IoT Operations reserviert hat.
Erstellen eines Arc-fähigen Clusters
Das Skript AksEdgeQuickStartForAio.ps1 automatisiert den Prozess der Erstellung und Verbindung eines Clusters und ist der empfohlene Weg für die Bereitstellung von Azure IoT Einsatz auf AKS Edge Essentials. Das Skript führt Folgendes aus:
- Lädt die neueste MSI-Datei von AKS Edge Essentials aus diesem Repository herunter.
- Installiert AKS Edge Essentials und stellt einen einzelnen Kubernetes-Cluster auf Ihrem Windows-Computer bereit und erstellt diesen.
- Stellt eine Verbindung mit dem Azure-Abonnement bereit, erstellt eine Ressourcengruppe, sofern sie noch nicht vorhanden ist, und verbindet den Cluster mit Arc, um einen Arc-fähigen Kubernetes-Cluster zu erstellen.
- Aktiviert das Feature für benutzerdefinierte Position im Arc-fähigen Kubernetes-Cluster.
- Aktiviert das Arbeitslastidentitätsverbundfeature im Arc-fähigen Kubernetes-Cluster.
- Stellt die lokale Pfadbereitstellung bereit.
- Konfiguriert Firewallregeln auf dem Host-Windows-Computer für den MQTT-Broker.
- Auf der Linux-VM, die als Kubernetes-Steuerebenenknoten dient:
- Konfiguriert den Portproxy für den Kubernetes-Dienststandard-IP-Bereich von 10.96.0.0/28.
- Konfiguriert die IP-Tabellenregeln:
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
Führen Sie die folgenden Schritte aus, um das Schnellstartskript auszuführen:
Öffnen Sie ein PowerShell-Fenster mit erhöhten Rechten und wechseln Sie in das Verzeichnis eines Arbeitsordners.
Rufen Sie die
objectId
der Microsoft Entra ID-Anwendung ab, die der Azure Arc-Dienst in Ihrem Tenant verwendet. Führen Sie den folgenden Befehl genau wie angegeben aus, ohne den GUID-Wert zu ändern.az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
Führen Sie die folgenden Befehle aus und ersetzen Sie die Platzhalterwerte durch Ihre Informationen:
$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 .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>" -Location "<LOCATION>" -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
Platzhalter Wert SUBSCRIPTION_ID Die ID Ihres Azure-Abonnements. Wenn Sie Ihre Abonnement-ID nicht kennen, lesen Sie So finden Sie Ihr Azure-Abonnement. TENANT_ID Die ID Ihres Microsoft Entra-Mandanten Wenn Sie Ihre Mandanten-ID nicht kennen, lesen Sie So finden Sie Ihren Microsoft Entra-Mandanten. RESOURCE_GROUP_NAME Der Name einer vorhandenen Ressourcengruppe oder ein Namen für eine neue zu erstellende Ressourcengruppe. Pro Ressourcengruppe wird nur eine Azure IoT Operations-Instanz unterstützt. LOCATION Eine Azure-Region in Ihrer Nähe. Eine Liste der von Azure IoT Operations unterstützten Azure-Regionen finden Sie unter "Unterstützte Regionen". CLUSTER_NAME Ein Name für den zu erstellenden neuen Cluster. ARC_APP_OBJECT_ID Der Objekt-ID-Wert, den Sie in Schritt 2 abgerufen haben. Wenn während der Bereitstellung Probleme auftreten, z. B. wenn der Computer im Rahmen dieses Prozesses neu gestartet wird, führen Sie den Satz von Befehlen erneut aus.
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Bereitstellung erfolgreich war:
Import-Module AksEdge Get-AksEdgeDeploymentInfo
In der Ausgabe des
Get-AksEdgeDeploymentInfo
Befehls sollten Sie sehen, dass der Arc-Status des Clusters verbunden ist.
Überprüfen Ihres Clusters
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihr Kubernetes-Cluster Azure Arc-aktiviert ist:
kubectl get deployments,pods -n azure-arc
Die Ausgabe sieht etwa folgendermaßen aus:
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