Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du använder några vanliga verktyg när du lär dig, utforskar eller felsöker dina Azure IoT Operations-instanser. De här verktygen är utöver de funktioner som tillhandahålls av Azure Portal, Azure CLI, driftupplevelsens webbgränssnitt och observerbarhetsresurser.
Kubernetes-verktyg
Azure IoT Operations-komponenter körs i ett Kubernetes-standardkluster. Du kan använda CLI-verktygen kubectl och k9s för att interagera med och hantera klustret.
kubectl
kubectl är kommandoradsverktyget Kubernetes för att hantera klustret. Den har många funktioner som du kan lära dig mer om i den officiella kubernetes-dokumentationen. Den här artikeln beskriver vanliga användningsområden för kubectl när du arbetar med Azure IoT Operations, till exempel att visa de poddar som körs och visa loggar.
Konfigurera kubectl för att ansluta till din instans
I artikeln Förbered ditt Azure Arc-aktiverade Kubernetes-kluster beskrivs hur du konfigurerar kubectl för att ansluta till k3s-klustret när du kör kubectl kommandon på samma dator där du distribuerade kubernetes-klustret.
Dricks
Lägg till kommandot i export KUBECONFIG=~/.kube/config.bashrc - eller .bash_profile-filen så att du inte behöver ange KUBECONFIG miljövariabeln varje gång du öppnar ett nytt terminalfönster.
Om du distribuerade din Azure IoT Operations-instans till en Arc-aktiverad AKS-EE konfigureras konfigurationen kubectl automatiskt åt dig. Du kan köra kubectl kommandon direkt från kommandoraden på den dator där du distribuerade klustret.
Det går också att köra kubectl kommandon från den lokala klientdatorn i stället för den dator där du distribuerade det Arc-aktiverade klustret:
Som ett engångssteg använder du SSH för att ansluta till datorn där du distribuerade klustret och kör följande kommandon. Ersätt <your-name> med ditt namn:
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
Anteckna token. Du använder den här token för att autentisera när du kör kubectl kommandon på klientdatorn. Nu kan du koppla från datorn som kör Kubernetes-klustret.
Om du vill använda kubectl på klientdatorn för att ansluta till klustret öppnar du två terminaler:
I den första terminalen kör du följande kommando för att konfigurera en proxy för att ansluta till klustret. Se till att ersätta värdena för de tre platshållarna:
az connectedk8s proxy -n <your-arc-enabled-cluster-name> -g <your-arc-enabled-cluster-resource-group> --token <token-from-previous-step>Lämna terminalen öppen medan du kör
kubectlkommandon i den andra terminalen.I den andra terminalen kan du köra dina
kubectlkommandon mot fjärrklustret. Om du till exempel vill lista poddarna iazure-iot-operationsnamnområdet:kubectl get pods -n azure-iot-operationsDricks
Du kan också köra kommandon, till exempel , som
k9sanvänder konfigurationenkubectli den här terminalen.Kontexten
kubectlförblir inställd på fjärrklustret tills du stänger din första terminal.
Mer information finns i Använda klusteranslutning för att ansluta på ett säkert sätt till Azure Arc-aktiverade Kubernetes-kluster.
Namnrymder
Som standard använder Arc och Azure IoT Operations följande namnområden i Kubernetes-klustret:
-
azure-iot-operationsför Azure IoT Operations-komponenterna. -
azure-arcför Azure Arc-aktiverade Kubernetes-komponenter.
Dricks
Om du vill visa alla namnområden i klustret kör du följande kommando: kubectl get namespaces.
Vanliga kubectl kommandon
Om du vill visa alla poddar som körs i azure-iot-operations namnområdet kör du följande kommando:
kubectl get pods -n azure-iot-operations
Utdata ser ut som i följande exempel:
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
Kör följande kommando för att visa loggarna för en specifik podd, till exempel podden aio-opc-opc.tcp-1-858b9ff67-dxwvb:
kubectl logs aio-opc-opc.tcp-1-858b9ff67-dxwvb -n azure-iot-operations
Kör följande kommando för att visa en läsbar beskrivning av en specifik podd, till exempel podden aio-opc-opc.tcp-1-858b9ff67-dxwvb :
kubectl describe pod aio-opc-opc.tcp-1-858b9ff67-dxwvb -n azure-iot-operations
På vissa ställen använder Azure IoT Operations-dokumentationen kommandot kubectl apply för att tillämpa en Kubernetes-manifestfil för att göra en konfigurationsändring i klustret.
k9s
Verktyget k9s erbjuder ett terminalbaserat användargränssnitt för att hantera ditt Kubernetes-kluster. Den använder konfigurationen kubectl för att ansluta till klustret och ger ett visuellt sätt att interagera med klustret. Dess standardvy visar alla poddar som körs i klustret:
När du arbetar med Azure IoT Operations kan du filtrera vyn så att endast poddarna visas i azure-iot-operations namnområdet.
Skriv
:för att öppna kommandopanelen och skrivnsoch tryck på Retur.I listan med namnområden väljer du
azure-iot-operationsoch trycker på Retur.Listan över poddar visar nu endast poddarna i namnområdet azure-iot-operations :
Dricks
Nu kan du använda nummernycklarna för att tillämpa filter. Föregående skärmbild visar att 0 visar alla poddar och 1 endast visar poddarna i namnområdet azure-iot-operations .
Du kan använda genvägsnycklar för att visa information om dina poddar. Till exempel:
Om du vill beskriva en podd väljer du den i listan och trycker på d.
Om du vill visa loggarna för en podd markerar du den i listan och trycker på l.
Dricks
Du kan använda nummernycklarna för att navigera runt loggfilen.
Så här visar du andra anpassade resurstyper som poddar i klustret:
Tryck på Ctrl-a för att visa listan över anpassade resurstyper.
Välj den anpassade resurstypen, till exempel assetendpointprofiles och tryck på Retur.
Dricks
Om du vill söka efter en anpassad resurstyp efter namn skriver / du och börjar sedan skriva namnet på den typ du letar efter.
Välj en anpassad resurs och välj en av de tillgängliga åtgärderna. Du kan till exempel visa YAML-definitionen för en enhetsslutpunktsprofil genom att välja den och trycka på y. För vissa resurser kan du redigera konfigurationen.
I följande tabell beskrivs några av de anpassade resurstyper som du kan arbeta med i Azure IoT Operations:
| Anpassad resurstyp | beskrivning |
|---|---|
devices |
Representerar konfigurationen för en enhet. |
assets |
Representerar konfigurationen för en tillgång. |
brokers, brokerlisters, , brokerauthenticationsbrokerauthorizations |
Representerar konfigurationen för en MQTT-koordinator. |
dataflows, , dataflowendpointsdataflowprofiles |
Representera konfigurationen för ett dataflöde. |
secrets, , secretsyncssecretproviderclasses |
Representerar konfigurationen för hemligheter och hemlig hantering. |
MQTT-verktyg
När du lär dig om och testar MQTT-koordinatorn i din Azure IoT Operations-instans kan du använda MQTT-klientverktyg för att interagera med asynkron meddelandekö. Av säkerhetsskäl exponerar Dock inte Azure IoT Operations MQTT-koordinatorn utanför klustret. Som en work-around har du följande alternativ:
Varning
Dessa tre metoder är endast lämpliga för utvecklings- och testmiljöer. Du bör inte under några omständigheter använda dem i en produktionsmiljö.
Anslut till standardlyssnaren i klustret. Det här alternativet använder standardkonfigurationen och kräver inga extra uppdateringar. Du är begränsad till en liten uppsättning MQTT-klientverktyg.
Använd en
NodePorttjänst för att exponera MQTT-koordinatorn utanför klustret. Det här alternativet kräver att du uppdaterar konfigurationen av MQTT-koordinatorn. Du kan använda MQTT-klientverktyg som stöder anslutning till en specifik port.Använd en
LoadBalancertjänst för att exponera MQTT-koordinatorn utanför klustret. Det här alternativet kräver att du uppdaterar konfigurationen av MQTT-koordinatorn. Du kan använda MQTT-klientverktyg som stöder anslutning till en specifik port.
Ansluta till standardlyssnaren i klustret
Om du vill ansluta till standardlyssnaren i klustret kan du distribuera en podd som kör CLI-baserade MQTT-klientverktyg som mosquitto_sub och mosquitto_pub. Följande kommando distribuerar en sådan podd till klustret:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
När podden har körts kan du ansluta till ett gränssnitt i podden:
kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
Använd det här gränssnittet för att köra kommandon som mosquitto_sub och mosquitto_pub för att interagera med MQTT-koordinatorn. Om du till exempel vill prenumerera på alla ämnen under ämnet 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)
Observera hur kommandot läser in en certifikatfil och en token från poddens filsystem. Manifestfilen mqtt-client.yaml monterar dessa filer i podden.
Om du vill ta emot ett enda meddelande från ämnet azure-iot-operations/data/thermostat lägger du till alternativet -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)
Om du vill visa MQTT v5-användaregenskaperna i meddelandena använder du alternativet -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)
Så här publicerar du ett meddelande till ämnet 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)
När du är klar med MQTT-klientverktygspodden kan du ta bort den från klustret:
kubectl delete -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
Mer information om den här konfigurationen finns i Ansluta till standardlyssnaren i klustret.
Använda en NodePort eller LoadBalancer tjänst
Om du följer stegen för att konfigurera en nodport eller en lastbalanserare för att exponera MQTT-koordinatorn utanför klustret kan du använda MQTT-klientverktyg som stöder anslutning till en specifik port. I följande exempel förutsätts att du har konfigurerat tjänsten utan autentisering, auktorisering eller TLS. Du kan nu använda dina MQTT-favoritklientverktyg för att ansluta till MQTT-koordinatorn på port 1883 om du använder en lastbalanserare eller den konfigurerade porten om du använder en nodport.
Om du till exempel vill köra Mqttui-verktyget med öppen källkod på den dator där Kubernetes-klustret körs använder du följande kommando:
mqttui --broker mqtt://localhost:1883
Dricks
Om du har konfigurerat en lastbalanserare och port 1883 är öppen på värddatorns offentliga IP-adress kan du använda följande kommando för att ansluta till MQTT-koordinatorn från en annan dator: mqttui --broker mqtt://<cluster-machine-public-ip>:1883
Du kan använda mqttui verktyget för att prenumerera på ämnen, publicera meddelanden och visa de meddelanden som flödar via asynkron meddelandekö:
Om du vill visa meddelanden i ett visst ämne, till exempel azure-iot-operations/data/thermostat, använder du följande kommando:
mqttui --broker mqtt://localhost:1883 azure-iot-operations/data/thermostat
Om du vill publicera ett meddelande till ämnet azure-iot-operations/data/valve använder du följande kommando:
mqttui publish --broker mqtt://localhost:1883 azure-iot-operations/data/valve open:15%
Om du vill köra MQTT Explorer-verktyget med öppen källkod på datorn där Kubernetes-klustret körs använder du följande konfiguration:
Använd följande konfiguration för att köra MQTT Explorer-verktyget med öppen källkod på den lokala datorn för att ansluta till datorn där Kubernetes-klustret körs:
Kontrollera att MQTT Explorer har minst det # konfigurerade ämnet:
När du har anslutit kan du se meddelanden i de ämnen som du prenumererar på och publicera meddelanden: