Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment utiliser certains outils courants lorsque vous découvrez, explorez ou dépannez vos instances Opérations Azure IoT. Outre, les fonctionnalités fournies par le portail Azure, ces outils sont Azure CLI, l’interface utilisateur web d’expérience des opérations et les ressources d’observabilité.
Outils Kubernetes
Les composants Opérations Azure IoT s’exécutent dans un cluster Kubernetes standard. Vous pouvez utiliser les outils CLI kubectl et k9s pour interagir avec votre cluster et le gérer.
kubectl
kubectl est l’outil en ligne de commande Kubernetes permettant de gérer votre cluster. Il offre de nombreuses fonctionnalités que vous pouvez découvrir dans la documentation Kubernetes officielle. Cet article décrit les utilisations courantes de kubectl lorsque vous utilisez Opérations Azure IoT pour lister les pods en cours d’exécution ou afficher les journaux par exemple.
Configurer kubectl pour vous connecter à votre instance
L’article Préparer votre cluster Kubernetes avec Azure Arc décrit comment configurer kubectl pour vous connecter à votre cluster k3s lorsque vous exécutez des commandes kubectl sur l’ordinateur sur lequel vous avez déployé votre cluster Kubernetes.
Conseil
Ajoutez la commande export KUBECONFIG=~/.kube/config à votre fichier .bashrc ou .bash_profile. Ainsi, vous n’avez pas à définir la variable d’environnement KUBECONFIG chaque fois que vous ouvrez une nouvelle fenêtre de terminal.
Si vous avez déployé votre instance Opérations Azure IoT sur un AKS-EE avec Arc, la configuration kubectl se configure automatiquement pour vous. Vous pouvez exécuter les commandes kubectl directement dans la ligne de commande sur l’ordinateur sur lequel vous avez déployé votre cluster.
Vous pouvez aussi exécuter les commandes kubectl sur votre ordinateur client local plutôt que sur l’ordinateur sur lequel vous avez déployé votre cluster avec Arc :
Cette étape unique vous permet d’utiliser SSH pour vous connecter à l’ordinateur sur lequel vous avez déployé votre cluster et d’exécuter les commandes suivantes. Veillez à remplacer <your-name> par votre nom :
kubectl create serviceaccount <your-name> -n default
kubectl create clusterrolebinding <your-name>-binding --clusterrole cluster-admin --serviceaccount default:<your-name>
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: <your-name>-secret
annotations:
kubernetes.io/service-account.name: <your-name>
type: kubernetes.io/service-account-token
EOF
TOKEN=$(kubectl get secret <your-name>-secret -o jsonpath='{$.data.token}' | base64 -d | sed 's/$/\n/g')
echo $TOKEN
Notez le jeton. Ce jeton vous permet de vous authentifier lorsque vous exécutez des commandes kubectl sur votre ordinateur client. Vous pouvez maintenant vous déconnecter de l’ordinateur exécutant votre cluster Kubernetes.
Pour utiliser kubectl sur votre ordinateur client afin de vous connecter au cluster, ouvrez deux terminaux :
Dans le premier terminal, exécutez la commande suivante pour configurer un proxy afin de vous connecter à votre cluster. Veillez à remplacer les valeurs des trois espaces réservés :
az connectedk8s proxy -n <your-arc-enabled-cluster-name> -g <your-arc-enabled-cluster-resource-group> --token <token-from-previous-step>Laissez le terminal ouvert pendant que vous exécutez les commandes
kubectlsur le deuxième terminal.Vous pouvez exécuter les commandes
kubectlsur votre cluster distant depuis le deuxième terminal. Par exemple, pour répertorier les pods dans l’espace de nomsazure-iot-operations:kubectl get pods -n azure-iot-operationsConseil
Vous pouvez également exécuter des commandes comme
k9s, qui utilisent la configurationkubectldans le terminal.Le contexte
kubectlreste défini sur le cluster distant jusqu’à ce que vous fermiez le premier terminal.
Pour plus d’informations, consultez Utiliser la connexion au cluster pour se connecter en toute sécurité aux clusters Kubernetes avec Azure Arc.
Espaces de noms
Par défaut, Opérations Azure IoT et Arc utilisent les espaces de noms suivants dans le cluster Kubernetes :
-
azure-iot-operationspour les composants Opérations Azure IoT. -
azure-arcpour les composants Kubernetes avec Azure Arc.
Conseil
Pour afficher tous les pods sur votre cluster, exécutez la commande suivante : kubectl get namespaces.
Commandes kubectl courantes
Pour répertorier tous les pods en cours d’exécution dans l’espace de noms azure-iot-operations, exécutez la commande suivante :
kubectl get pods -n azure-iot-operations
La sortie ressemble à l’exemple suivant :
NAME READY STATUS RESTARTS AGE
adr-schema-registry-0 2/2 Running 0 19m
adr-schema-registry-1 2/2 Running 0 19m
aio-akri-agent-777477bc68-72lrg 1/1 Running 7 (83m ago) 21d
aio-broker-authentication-0 1/1 Running 7 (83m ago) 21d
aio-broker-backend-1-0 1/1 Running 11 (82m ago) 21d
aio-broker-backend-1-1 1/1 Running 7 (83m ago) 21d
aio-broker-diagnostics-probe-0 1/1 Running 11 (83m ago) 21d
aio-broker-diagnostics-service-0 1/1 Running 7 (83m ago) 21d
aio-broker-fluent-bit-6bkf2 1/1 Running 0 16m
aio-broker-frontend-0 1/1 Running 12 (83m ago) 21d
aio-broker-health-manager-0 1/1 Running 14 (82m ago) 21d
aio-broker-operator-0 1/1 Running 7 (83m ago) 21d
aio-broker-upgrade-status-job-1.0.4-bwlcc 0/1 Completed 0 77m
aio-broker-webhook-admission-65d67f8ddc-jct9j 1/1 Running 0 82m
aio-dataflow-admission-webhook-84dd44c8bd-6pw58 1/1 Running 7 (83m ago) 21d
aio-dataflow-operator-0 1/1 Running 14 (83m ago) 21d
aio-dataflow-upgrade-status-job-1.0.5-msmf4 0/1 Completed 0 77m
aio-opc-asset-discovery-54649d46cf-kb6qs 1/1 Running 2 (83m ago) 17d
aio-opc-media-1-785748ff6c-qkhgl 1/1 Running 1 (83m ago) 14d
aio-opc-opc.tcp-1-858b9ff67-dxwvb 1/1 Running 4 (80m ago) 17d
aio-opc-supervisor-5d6b9bfc49-fgt7d 1/1 Running 2 (83m ago) 17d
aio-operator-7b9b585dc6-bvfpd 2/2 Running 0 19m
aio-usage-28946280-f42k8 0/1 Completed 0 14d
aio-usage-28946340-45grx 0/1 Completed 0 14d
aio-usage-28946400-znn7v 0/1 Completed 0 13d
aio-usage-28946460-nrw4z 0/1 Completed 0 13d
aio-usage-28966500-mrcmf 0/1 Completed 0 55m
Pour afficher les journaux d’un pod spécifique (comme le pod aio-opc-opc.tcp-1-858b9ff67-dxwvb), exécutez la commande suivante :
kubectl logs aio-opc-opc.tcp-1-858b9ff67-dxwvb -n azure-iot-operations
Pour afficher une description explicite d’un pod spécifique (comme le pod aio-opc-opc.tcp-1-858b9ff67-dxwvb), exécutez la commande suivante :
kubectl describe pod aio-opc-opc.tcp-1-858b9ff67-dxwvb -n azure-iot-operations
Dans certains endroits, la documentation Opérations Azure IoT utilise la commande kubectl apply pour appliquer un fichier manifeste Kubernetes en vue de modifier la configuration du cluster.
k9s
L’utilitaire k9s offre une interface utilisateur basée sur un terminal permettant de gérer votre cluster Kubernetes. Il utilise la configuration kubectl pour vous connecter à votre cluster et fournit un moyen visuel pour interagir avec votre cluster. Par défaut, l’affichage répertorie tous les pods en cours d’exécution dans votre cluster :
Lorsque vous utilisez Opérations Azure IoT, vous pouvez filtrer la vue pour afficher uniquement les pods de l’espace de noms azure-iot-operations.
Tapez
:pour ouvrir le panneau de commandes, saisissezns, puis appuyez sur Entrée.Dans la liste des espaces de noms, sélectionnez
azure-iot-operationset appuyez sur Entrée.Désormais, la liste des pods affiche uniquement les pods de l’espace de noms azure-iot-operations :
Conseil
Vous pouvez maintenant utiliser le pavé numérique pour appliquer des filtres. La capture d’écran précédente montre que la touche 0 permet d’afficher tous les pods et la touche 1 permet d’afficher uniquement les pods de l’espace de noms azure-iot-operations.
Vous pouvez utiliser des touches de raccourci pour afficher les informations sur vos pods. Par exemple :
Pour décrire un pod, sélectionnez-le dans la liste et appuyez sur d.
Pour afficher les journaux d’un pod, sélectionnez-le dans la liste et appuyez sur l.
Conseil
Vous pouvez utiliser le pavé numérique pour accéder au fichier journal.
Pour afficher les autres types de ressources personnalisées (différents des pods) du cluster :
Appuyez sur Ctrl+a pour afficher la liste des types de ressources personnalisées.
Sélectionnez le type de ressource personnalisé, tel que les appareils , puis appuyez sur Entrée.
Conseil
Pour rechercher un type de ressource personnalisée par nom, tapez /, puis commencez à saisir le nom du type recherché.
Sélectionnez une ressource personnalisée et choisissez l’une des opérations disponibles. Par exemple, vous pouvez afficher la définition YAML d’un profil de point de terminaison d’appareil en la sélectionnant et en appuyant sur y. Vous pouvez modifier la configuration de certaines ressources.
Le tableau suivant répertorie certains types de ressources personnalisées utilisables avec Opérations Azure IoT :
| Type de ressource personnalisée | Descriptif |
|---|---|
devices |
Représente la configuration d’un appareil. |
assets |
Représente la configuration d’une ressource. |
brokers, , brokerlistersbrokerauthentications, ,brokerauthorizations |
Représente la configuration d’un agent MQTT. |
dataflows, dataflowendpointsdataflowprofiles |
Représente la configuration d’un flux de données. |
secrets, secretsyncssecretproviderclasses |
Représente la configuration des secrets et de la gestion correspondante. |
Outils MQTT
Lorsque vous découvrez et testez l’agent MQTT dans votre instance Opérations Azure IoT, vous pouvez utiliser les outils clients MQTT pour interagir avec lui. Toutefois, pour des raisons de sécurité, Opérations Azure IoT n’expose pas l’agent MQTT hors du cluster. Vous pouvez aussi recourir à l’une des options suivantes :
Attention
Ces trois approches conviennent uniquement aux environnements de développement et de test. Vous ne devez en aucun cas les utiliser dans un environnement de production.
Connectez-vous à l’écouteur par défaut qui se trouve dans le cluster. Cette option utilise la configuration par défaut et ne nécessite aucune mise à jour supplémentaire. L’opération se limite à un petit ensemble d’outils clients MQTT.
Utilisez un service
NodePortpour exposer l’agent MQTT hors du cluster. Avec cette option, vous devez mettre à jour la configuration de l’agent MQTT. Vous pouvez utiliser n’importe quel outil client MQTT permettant de se connecter à un port spécifique.Utilisez un service
LoadBalancerpour exposer l’agent MQTT hors du cluster. Avec cette option, vous devez mettre à jour la configuration de l’agent MQTT. Vous pouvez utiliser n’importe quel outil client MQTT permettant de se connecter à un port spécifique.
Se connecter à l’écouteur par défaut à l’intérieur du cluster
Pour vous connecter à l’écouteur par défaut qui se trouve dans le cluster, déployez un pod qui exécute des outils clients MQTT basés sur l’interface CLI (comme mosquitto_sub ou mosquitto_pub). La commande suivante permet de déployer un tel pod sur votre cluster :
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
Une fois le pod en cours d’exécution, vous pouvez vous connecter à un interpréteur de commandes dans le pod :
kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
Utilisez cet interpréteur pour exécuter des commandes (comme mosquitto_sub ou mosquitto_pub) pour interagir avec l’agent MQTT. Par exemple, pour vous abonner à toutes les rubriques de la rubrique azure-iot-operations/data :
mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/#" --verbose --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
Remarquez la façon dont la commande charge un fichier de certificat et un jeton à partir du système de fichiers du pod. Le fichier manifeste mqtt-client.yaml monte ces fichiers dans le pod.
Pour recevoir un message unique de la rubrique azure-iot-operations/data/thermostat, ajoutez l’option -C 1 :
mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/thermostat" -C 1 --verbose --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
Pour afficher les propriétés utilisateur MQTT v5 dans les messages, utilisez l’option -F %P :
mosquitto_sub --host aio-broker --port 18883 --topic "azure-iot-operations/data/thermostat" -V mqttv5 -F %P --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
Pour publier un message dans la rubrique azure-iot-operations/data/valve :
mosquitto_pub --host aio-broker --port 18883 --topic "azure-iot-operations/data/valve" --message "open:15%" --id "controller" --cafile /var/run/certs/ca.crt -D CONNECT authentication-method 'K8S-SAT' -D CONNECT authentication-data $(cat /var/run/secrets/tokens/broker-sat)
Lorsque vous avez fini d’utiliser le pod des outils clients MQTT, vous pouvez le supprimer du cluster :
kubectl delete -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
Pour en savoir plus sur cette configuration, consultez Se connecter à l’écouteur par défaut qui se trouve dans le cluster.
Utiliser un service NodePort ou LoadBalancer
Si vous appliquez la procédure de configuration d’un port de nœud ou d’un service d’équilibrage de charge pour exposer l’agent MQTT hors du cluster, vous pouvez utiliser n’importe quel outil client MQTT permettant de se connecter à un port spécifique. Les exemples suivants supposent que vous avez configuré le service sans authentification, autorisation ni TLS. Vous pouvez maintenant utiliser vos outils clients MQTT favoris pour vous connecter à l’agent MQTT sur le port 1883 si vous utilisez un équilibreur de charge (ou le port configuré si vous utilisez un port de nœud).
Par exemple, pour exécuter l’outil mqttui open source sur l’ordinateur sur lequel votre cluster Kubernetes s’exécute, utilisez la commande suivante :
mqttui --broker mqtt://localhost:1883
Conseil
Si vous avez configuré un équilibreur de charge et que le port 1883 est ouvert sur l’adresse IP publique de l’ordinateur hôte, vous pouvez utiliser la commande suivante pour vous connecter à l’agent MQTT depuis un autre ordinateur : mqttui --broker mqtt://<cluster-machine-public-ip>:1883
Vous pouvez utiliser l’outil mqttui pour vous abonner à des rubriques, publier des messages et afficher ceux qui circulent via l’agent :
Pour afficher les messages d’une rubrique spécifique (comme azure-iot-operations/data/thermostat), utilisez la commande suivante :
mqttui --broker mqtt://localhost:1883 azure-iot-operations/data/thermostat
Pour publier un message sur la rubrique azure-iot-operations/data/valve, exécutez la commande suivante :
mqttui publish --broker mqtt://localhost:1883 azure-iot-operations/data/valve open:15%
Pour exécuter l’outil MQTT Explorer open source sur l’ordinateur sur lequel votre cluster Kubernetes s’exécute, utilisez la configuration suivante :
Pour exécuter l’outil MQTT Explorer open source sur votre ordinateur local afin de vous connecter à l’ordinateur sur lequel votre cluster Kubernetes s’exécute, utilisez la configuration suivante :
Vérifiez que MQTT Explorer comporte au minimum la rubrique # configurée :
Une fois connecté·e, vous pouvez lire les messages des rubriques auxquelles vous êtes abonné·e et publier d’autres messages :
Conseils
Voici quelques conseils supplémentaires pour vous aider à utiliser votre instance Azure IoT Operations :
Rechercher l’emplacement personnalisé de votre instance Azure IoT Operations
Pour rechercher l’emplacement personnalisé associé à votre instance Azure IoT Operations, utilisez la commande suivante :
az iot ops show --name <YOUR_INSTANCE_NAME> --resource-group <YOUR_RESOURCE_GROUP> --query "extendedLocation.name" --output tsv
Vous pouvez également trouver l’emplacement personnalisé dans le portail Azure sur la page vue d’ensemble de l’instance dans le champ Emplacement étendu .