Créer et configurer un cluster AKS Edge Essentials qui peut exécuter des opérations Azure IoT
Azure Kubernetes Service (AKS) Edge Essentials est l’une des plateformes de cluster prises en charge pour les opérations Azure IoT. Vous pouvez utiliser AKS Edge Essentials pour créer un cluster Kubernetes géré par Microsoft et déployer Azure IoT Operations sur celui-ci en tant que charge de travail. Cet article décrit les étapes d’exécution d’un script qui crée un cluster Kubernetes AKS Edge Essentials avec les configurations requises pour Azure IoT Operations, puis connecte ce cluster à Azure Arc.
Remarque
Azure IoT Operations prend en charge AKS Edge Essentials lors du déploiement sur des clusters à ordinateur unique. Le déploiement de clusters sur plusieurs machines est une fonctionnalité expérimentale.
Conditions préalables à l’exécution du script
Pour exécuter le script, vous avez besoin des prérequis suivants :
Un abonnement Azure avec le rôle Propriétaire ou une combinaison de rôles Contributeur et Administrateur d’accès utilisateur. Vous pouvez vérifier votre niveau d’accès en accédant à votre abonnement, en sélectionnant Contrôle d’accès (IAM) sur le côté gauche du Portail Azure, puis en sélectionnant Afficher mon accès. Si vous n’avez pas d’abonnement Azure, créez-en un gratuitement avant de commencer.
Azure CLI version 2.64.0 ou ultérieure installée sur votre ordinateur de développement. Utilisez
az --version
pour vérifier votre version etaz upgrade
pour effectuer une mise à jour si nécessaire. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Installation de l’interface de ligne de commande Azure.Installez la dernière version des extensions connectedk8s pour Azure CLI :
az extension add --upgrade --name connectedk8s
Configuration matérielle requise : vérifiez que votre machine dispose d’un minimum de 16 Go de RAM disponible, de 4 processeurs virtuels disponibles et d’espace disque libre de 52 Go réservé aux opérations Azure IoT.
Créer un cluster avec Arc
Le script AksEdgeQuickStartForAio.ps1 automatise le processus de création et de connexion d’un cluster, et est le chemin recommandé pour le déploiement d’Opérations Azure IoT sur AKS Edge Essentials. Le script effectue les tâches suivantes :
- Télécharge la dernière MSI AKS Edge Essentials à partir de ce dépôt.
- Installe AKS Edge Essentials et déploie et crée un seul cluster Kubernetes sur votre ordinateur Windows.
- Se connecte à l’abonnement Azure, crée un groupe de ressources s’il n’existe pas déjà et connecte le cluster à Arc pour créer un cluster Kubernetes avec Arc.
- Active la fonctionnalité d’emplacement personnalisé sur le cluster Kubernetes avec Arc.
- Active la fonctionnalité de fédération des identités de charge de travail sur le cluster Kubernetes avec Arc.
- Déploie l’approvisionnement de chemins d’accès local.
- Configure les règles de pare-feu sur l’ordinateur Windows hôte pour le répartiteur MQTT.
- Sur la machine virtuelle Linux, qui sert de nœud de plan de contrôle Kubernetes :
- Configure le proxy de port pour la plage d’adresses IP par défaut du service Kubernetes de 10.96.0.0/28.
- Configure les règles de table 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
Pour exécuter le script de démarrage rapide, procédez comme suit :
Ouvrez une fenêtre PowerShell avec élévation de privilèges et remplacez le répertoire par un dossier de travail.
Récupérez l’élément
objectId
de l’application Microsoft Entra ID utilisée par le service Azure Arc dans votre tenant. Exécutez la commande suivante exactement comme elle est écrite, sans changer la valeur GUID.az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
Exécutez les commandes suivantes, en remplaçant les valeurs d’espace réservé par vos informations :
$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>"
Paramètre substituable Valeur SUBSCRIPTION_ID ID de votre abonnement Azure. Si vous ne connaissez pas votre ID d’abonnement, consultez Trouver votre abonnement Azure. TENANT_ID ID de votre locataire Microsoft Entra. Si vous ne connaissez pas votre ID de locataire, consultez Trouver votre locataire Microsoft Entra. RESOURCE_GROUP_NAME Nom d’un groupe de ressources existant ou d’un groupe de ressources à créer. Une seule instance Azure IoT Operations est prise en charge par groupe de ressources. LOCATION Une région Azure proche de vous. Pour obtenir la liste des régions Azure prises en charge par Azure IoT Operations, consultez régions prises en charge. CLUSTER_NAME Nom du cluster à créer. ARC_APP_OBJECT_ID Valeur d’ID d’objet que vous avez récupérée à l’étape 2. S’il existe des problèmes pendant le déploiement, comme si votre ordinateur redémarre dans le cadre de ce processus, réexécutez l’ensemble de commandes.
Exécutez les commandes suivantes pour vérifier que le déploiement a réussi :
Import-Module AksEdge Get-AksEdgeDeploymentInfo
Dans la sortie de la
Get-AksEdgeDeploymentInfo
commande, vous devez voir que l’état Arc du cluster est Connecté.
Vérifier votre cluster
Pour vérifier que votre cluster Kubernetes est activé pour Azure Arc, exécutez la commande suivante :
kubectl get deployments,pods -n azure-arc
La sortie doit ressembler à celle-ci :
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