Démarrage rapide : configurer la préversion de la gestion de réseau en couches Azure IoT pour activer un cluster avec Arc dans un environnement Azure
Important
Opérations Azure IoT (préversion) – activé parc Azure Arc est actuellement en PRÉVERSION. Vous ne devez pas utiliser ce logiciel en préversion dans des environnements de production.
Vous devrez déployer une nouvelle installation d’Opérations Azure IoT lorsqu’une version en disponibilité générale sera publiée. Vous ne pourrez pas mettre à niveau une installation en préversion.
Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.
Dans ce guide de démarrage rapide, vous configurez la préversion de la gestion de réseau en couches Azure IoT sur un réseau Purdue de niveau 4 et de niveau 3. Le niveau 4 du réseau a accès à l'internet et le niveau 3 n'y a pas accès. Vous configurez la gestion de réseau en couches pour router le trafic de niveau 3 vers Azure. Enfin, vous pouvez activer avec Arc le cluster K3S au niveau 3, même s’il n’est pas directement connecté à Internet.
- Le niveau 4 est un cluster AKS avec une gestion en couches du réseau déployée.
- Le niveau 3 est un cluster K3S s’exécutant sur une machine virtuelle Linux qui utilise l’instance de gestion réseau en couches au niveau 4 pour obtenir la connexion à Azure. Le réseau de niveau 3 est configuré pour avoir un accès sortant au réseau de niveau 4 sur les ports 443 et 8084. Tous les autres accès sortants sont désactivés.
L’architecture de gestion du réseau en couches nécessite une configuration DNS sur le réseau de niveau 3, où les URL autorisées sont repointées au réseau de niveau 4. Dans cet exemple, cette configuration s’effectue à l’aide d’une configuration automatisée basée sur CoreDNS, le mécanisme de résolution DNS par défaut fourni avec k3s.
Prérequis
Ces conditions préalables sont uniquement destinées au déploiement de la gestion de réseau en couches indépendamment et à l’activation par Arc du cluster au niveau enfant.
- Un cluster AKS
- Une machine virtuelle Ubuntu 22.04.3 LTS Azure Linux
- Une machine de rebond ou de configuration qui a accès à Internet et aux réseaux de niveau 3 et de niveau 4
Déployer la préversion de la gestion de réseau en couches sur le cluster AKS
Ces étapes déploient la gestion du réseau en couches sur le cluster AKS. Le cluster est la couche supérieure du modèle ISA-95. À la fin de cette section, vous disposez d’une instance de gestion de réseau en couches prête à accepter le trafic à partir du cluster avec Azure Arc ci-dessous et de prendre en charge le déploiement du service de la préversion d’Opérations Azure IoT.
Configurez
kubectl
pour gérer votre cluster AKS à partir de votre jumpbox en suivant les étapes de connexion au cluster.Installez l’opérateur de gestion du réseau en couches avec la commande Azure CLI suivante :
az login az k8s-extension create --resource-group <RESOURCE GROUP> --name kind-lnm-extension --cluster-type connectedClusters --cluster-name <CLUSTER NAME> --auto-upgrade false --extension-type Microsoft.IoTOperations.LayeredNetworkManagement --version 0.1.0-preview --release-train preview
Pour vérifier que l’installation a abouti, exécutez :
kubectl get pods -n azure-iot-operations
Vous devez obtenir une liste de sorties qui ressemble à ce qui suit :
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s
Créez la ressource personnalisée de gestion réseau en couches en créant un fichier nommé level4.yaml avec le contenu suivant :
apiVersion: layerednetworkmgmt.iotoperations.azure.com/v1beta1 kind: Lnm metadata: name: level4 namespace: azure-iot-operations spec: image: pullPolicy: IfNotPresent repository: mcr.microsoft.com/oss/envoyproxy/envoy-distroless tag: v1.27.0 replicas: 1 logLevel: "debug" openTelemetryMetricsCollectorAddr: "http://aio-otel-collector.azure-iot-operations.svc.cluster.local:4317" level: 4 allowList: enableArcDomains: true domains: - destinationUrl: "*.ods.opinsights.azure.com" destinationType: external - destinationUrl: "*.oms.opinsights.azure.com" destinationType: external - destinationUrl: "*.monitoring.azure.com" destinationType: external - destinationUrl: "*.handler.control.monitor.azure.com" destinationType: external - destinationUrl: "quay.io" destinationType: external - destinationUrl: "*.quay.io" destinationType: external - destinationUrl: "docker.io" destinationType: external - destinationUrl: "*.docker.io" destinationType: external - destinationUrl: "*.docker.com" destinationType: external - destinationUrl: "gcr.io" destinationType: external - destinationUrl: "*.googleapis.com" destinationType: external - destinationUrl: "login.windows.net" destinationType: external - destinationUrl: "graph.windows.net" destinationType: external - destinationUrl: "msit-onelake.pbidedicated.windows.net" destinationType: external - destinationUrl: "*.vault.azure.net" destinationType: external - destinationUrl: "*.k8s.io" destinationType: external - destinationUrl: "*.pkg.dev" destinationType: external - destinationUrl: "github.com" destinationType: external - destinationUrl: "raw.githubusercontent.com" destinationType: external sourceIpRange: - addressPrefix: "0.0.0.0" prefixLen: 0
Pour créer l’instance de gestion réseau en couches en fonction du fichier level4.yaml, exécutez :
kubectl apply -f level4.yaml
Cette étape crée n pods, un service et deux mappages de configuration. n est basé sur le nombre de réplicas dans la ressource personnalisée.
Pour valider l’instance, exécutez :
kubectl get pods -n azure-iot-operations
La sortie doit ressembler à :
NAME READY STATUS RESTARTS AGE aio-lnm-operator-7db49dc9fd-kjf5x 1/1 Running 0 78s aio-lnm-level4-7598574bf-2lgss 1/1 Running 0 4s
Pour afficher le service, exécutez :
kubectl get services -n azure-iot-operations
La sortie doit ressembler à cet exemple :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE aio-lnm-level4 LoadBalancer 10.0.141.101 20.81.111.118 80:30960/TCP,443:31214/TCP 29s
Pour afficher les mappages de configuration, exécutez :
kubectl get cm -n azure-iot-operations
La sortie doit ressembler à cet exemple :
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
Dans cet exemple, l’instance de gestion réseau en couches est prête à accepter le trafic sur l’adresse IP externe
20.81.111.118
.
Préparer le cluster de niveau 3
Au niveau 3, vous créez un cluster Kubernetes K3S sur une machine virtuelle Linux. Pour simplifier la configuration du cluster, vous pouvez créer la machine virtuelle Ubuntu 22.04.3 LTS Azure Linux avec un accès Internet et activer ssh à partir de votre serveur de rebond.
Conseil
Dans un scénario plus réaliste qui consiste à démarrer la configuration dans un réseau isolé, vous pouvez préparer la machine avec l’image prédéfinie de votre solution ou l’approche de l’installation Air-Gap de K3S.
Sur la machine virtuelle Linux, installez et configurez K3S à l’aide des commandes suivantes :
curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
Configurez l’isolation réseau pour le niveau 3. Utilisez les étapes suivantes pour configurer le cluster de niveau 3 afin d’envoyer uniquement le trafic vers la gestion de réseau en couches au niveau 4.
- Naviguez jusqu’au groupe de sécurité réseau de l’interface réseau de la machine virtuelle.
- Ajoutez une règle de sécurité sortante supplémentaire pour refuser tout le trafic sortant à partir de la machine virtuelle de niveau 3.
- Ajoutez une autre règle de trafic sortant avec la priorité la plus élevée pour autoriser le trafic sortant vers l’adresse IP du cluster AKS de niveau 4 sur les ports 443 et 8084.
Approvisionner le cluster dans une couche isolée sur Arc
Les étapes suivantes vous permettent d’activer avec Arc le cluster de niveau 3 à l’aide de l’instance de gestion de réseau en couches au niveau 4.
Configurez le jumpbox pour avoir un accès kubectl au cluster.
Générez le fichier de configuration sur votre machine virtuelle Linux.
k3s kubectl config view --raw > config.level3
Sur votre jumpbox, configurez l’accès kubectl au cluster de niveau 3 k3s en copiant le fichier
config.level3
dans le répertoire~/.kube
et en le renommantconfig
. L’entrée du serveur dans le fichier de configuration doit être définie sur l’adresse IP ou le nom de domaine de la machine virtuelle de niveau 3.Reportez-vous à Configurer CoreDNS pour utiliser des mécanismes d’extension fournis par CoreDNS (le serveur DNS par défaut pour les clusters K3S) pour ajouter les URL autorisées à résoudre par CoreDNS.
Exécutez les commandes suivantes sur votre jumpbox pour connecter le cluster à Arc. Cette étape nécessite Azure CLI. Installez l’interface Az CLI si nécessaire.
az login az account set --subscription <your Azure subscription ID> az connectedk8s connect -g <your resource group name> -n <your connected cluster name>
Pour plus d’informations sur connectedk8s, consultez Démarrage rapide : Connecter un cluster Kubernetes existant à Azure Arc .
Un résultat similaire à ce qui suit devrait s’afficher :
This operation might take a while... The required pre-checks for onboarding have succeeded. Azure resource provisioning has begun. Azure resource provisioning has finished. Starting to install Azure arc agents on the Kubernetes cluster. { "agentPublicKeyCertificate": "MIICCgKCAgEAmU+Pc55pc3sOE2Jo5JbAdk+2OprUziCbgfGRFfbMHO4dT7A7LDaDk7tWwvz5KwUt66eMrabI7M52H8xXvy1j7YwsMwR5TaSeHpgrUe1/4XNYKa6SN2NbpXIXA3w4aHgtKzENm907rYMgTO9gBJEZNJpqsfCdb3E7AHWQabUe9y9T8aub+arBHLQ3furGkv8JnN2LCPbvLnmeLfc1J5 .... ....
Votre cluster Kubernetes est désormais activé par Arc et est répertorié dans le groupe de ressources que vous avez fourni dans la commande az connectedk8s connect. Vous pouvez également valider l’approvisionnement de ce cluster via le Portail Azure. Ce guide de démarrage rapide présente la fonctionnalité de gestion du réseau en couches pour activer Arc pour votre cluster Kubernetes. Vous pouvez maintenant essayer les expériences Arc intégrées sur ce cluster au sein du réseau isolé.
Étapes suivantes
- Pour comprendre comment configurer un cluster dans un réseau isolé pour le déploiement d’Opérations Azure IoT, consultez Configurer le service Gestion de réseau en couches pour activer la préversion d’Opérations Azure IoT dans un réseau isolé
- Pour obtenir plus de détails sur la configuration d’environnements réseau complets pour les scénarios liés aux Opérations Azure IoT, consultez Créer un exemple d’environnement réseau