Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak používat některé běžné nástroje při učení, zkoumání nebo řešení potíží s instancemi operací Azure IoT. Tyto nástroje jsou kromě funkcí poskytovaných webem Azure Portal, Azure CLI, webovým uživatelským rozhraním a pozorovatelnostmi.
Nástroje pro Kubernetes
Komponenty operací Azure IoT běží ve standardním clusteru Kubernetes. K interakci a správě clusteru kubectl můžete použít nástroje a k9s nástroje rozhraní příkazového řádku.
kubectl
kubectl je nástroj příkazového řádku Kubernetes pro správu clusteru. Má mnoho možností, o které se můžete dozvědět v oficiální dokumentaci kubernetes. Tento článek popisuje běžné použití při kubectl práci s operacemi Azure IoT, jako je výpis spuštěných podů a zobrazení protokolů.
Konfigurace kubectl připojení k vaší instanci
Článek o přípravě clusteru Kubernetes s podporou Azure Arc popisuje, jak nakonfigurovat kubectl připojení ke clusteru k3s při spouštění kubectl příkazů na stejném počítači, na kterém jste nasadili cluster Kubernetes.
Návod
export KUBECONFIG=~/.kube/config Přidejte příkaz do souboru .bashrc nebo .bash_profile, abyste nemuseli při každém otevření nového okna terminálu nastavit KUBECONFIG proměnnou prostředí.
Pokud jste nasadili instanci operace Azure IoT do AKS-EE s podporou arc, kubectl konfigurace se automaticky nastaví za vás. Příkazy můžete spouštět kubectl přímo z příkazového řádku na počítači, na kterém jste nasadili cluster.
Je také možné spouštět kubectl příkazy z místního klientského počítače místo počítače, na kterém jste nasadili cluster s podporou Arc:
Jako jednorázový krok se pomocí SSH připojte k počítači, na kterém jste nasadili cluster, a spusťte následující příkazy. Nezapomeňte nahradit <your-name> svým jménem:
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
Poznamenejte si token. Tento token použijete k ověření při spouštění kubectl příkazů na klientském počítači. Teď se můžete odpojit od počítače, na kterém běží cluster Kubernetes.
Pokud se chcete připojit ke clusteru pomocí kubectl klientského počítače, otevřete dva terminály:
V prvním terminálu spusťte následující příkaz, který nakonfiguruje proxy server pro připojení ke clusteru. Nezapomeňte nahradit hodnoty pro tři zástupné symboly:
az connectedk8s proxy -n <your-arc-enabled-cluster-name> -g <your-arc-enabled-cluster-resource-group> --token <token-from-previous-step>Během spouštění
kubectlpříkazů v druhém terminálu nechte tento terminál otevřený.V druhém terminálu můžete spouštět
kubectlpříkazy na vzdáleném clusteru. Pokud například chcete zobrazit seznam podů vazure-iot-operationsoboru názvů:kubectl get pods -n azure-iot-operationsNávod
Můžete také spouštět příkazy, například
k9s, které používajíkubectlkonfiguraci v tomto terminálu.Kontext
kubectlzůstane nastavený na vzdálený cluster, dokud nezavřete první terminál.
Další informace najdete v tématu Použití připojení clusteru k zabezpečenému připojení ke clusterům Kubernetes s podporou Azure Arc.
Obory názvů
Operace Arc a Azure IoT ve výchozím nastavení používají v clusteru Kubernetes následující obory názvů:
-
azure-iot-operationspro komponenty operací Azure IoT. -
azure-arcpro komponenty Kubernetes s podporou Azure Arc.
Návod
Pokud chcete zobrazit všechny obory názvů v clusteru, spusťte následující příkaz: kubectl get namespaces.
Běžné kubectl příkazy
Pokud chcete zobrazit všechny pody spuštěné v azure-iot-operations oboru názvů, spusťte následující příkaz:
kubectl get pods -n azure-iot-operations
Výstup vypadá jako v následujícím příkladu:
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
Pokud chcete zobrazit protokoly pro konkrétní pod, například aio-opc-opc.tcp-1-858b9ff67-dxwvb , spusťte následující příkaz:
kubectl logs aio-opc-opc.tcp-1-858b9ff67-dxwvb -n azure-iot-operations
Pokud chcete zobrazit popis konkrétního podu, který je čitelný pro člověka, například aio-opc-opc.tcp-1-858b9ff67-dxwvb, spusťte následující příkaz:
kubectl describe pod aio-opc-opc.tcp-1-858b9ff67-dxwvb -n azure-iot-operations
Na některých místech dokumentace k operacím Azure IoT používá příkaz kubectl apply k použití souboru manifestu Kubernetes, aby se v clusteru změnila konfigurace.
k9s
Nástroj k9s nabízí terminálové uživatelské rozhraní pro správu clusteru Kubernetes. Používá vaši kubectl konfiguraci pro připojení ke clusteru a poskytuje vizuální způsob interakce s clusterem. Jeho výchozí zobrazení obsahuje seznam všech podů aktuálně spuštěných v clusteru:
Když pracujete s operacemi Azure IoT, můžete zobrazení filtrovat a zobrazit jenom pody v azure-iot-operations oboru názvů.
Stisknutím klávesy Enter
:otevřete panel příkazůnsa stiskněte klávesu Enter.V seznamu oborů názvů vyberte
azure-iot-operationsa stiskněte Enter.V seznamu podů se teď zobrazují jenom pody v oboru názvů azure-iot-operations :
Návod
Teď můžete použít číselné klíče k použití filtrů. Předchozí snímek obrazovky ukazuje, že 0 zobrazuje všechny pody a 1 zobrazuje pouze pody v oboru názvů azure-iot-operations .
K zobrazení informací o podech můžete použít klávesové zkratky. Příklad:
Pokud chcete popisovat pod, vyberte ho v seznamu a stiskněte d.
Pokud chcete zobrazit protokoly podu, vyberte ho v seznamu a stiskněte l.
Návod
K procházení souboru protokolu můžete použít číselné klávesy.
Zobrazení vlastních typů prostředků jiných podů v clusteru:
Stisknutím kombinace kláves Ctrl a zobrazte seznam vlastních typů prostředků.
Vyberte vlastní typ prostředku, například zařízení , a stiskněte Enter.
Návod
Pokud chcete vyhledat vlastní typ prostředku podle názvu, zadejte / a začněte psát název požadovaného typu.
Vyberte vlastní prostředek a zvolte jednu z dostupných operací. Můžete například zobrazit definici YAML profilu koncového bodu zařízení tak, že ho vyberete a stisknete y. U některých prostředků můžete konfiguraci upravit.
Následující tabulka popisuje některé vlastní typy prostředků, se kterými můžete pracovat v operacích Azure IoT:
| Vlastní typ prostředku | Popis |
|---|---|
devices |
Představuje konfiguraci zařízení. |
assets |
Představuje konfiguraci prostředku. |
brokers, brokerlisters, , brokerauthenticationsbrokerauthorizations |
Představuje konfiguraci pro zprostředkovatele MQTT. |
dataflows, , dataflowendpointsdataflowprofiles |
Představuje konfiguraci toku dat. |
secrets, , secretsyncssecretproviderclasses |
Představuje konfiguraci pro správu tajných kódů a tajných kódů. |
Nástroje MQTT
Když se seznámíte s zprostředkovatelem MQTT a otestujete ho v instanci azure IoT Operations, můžete k interakci s zprostředkovatelem použít klientské nástroje MQTT. Z bezpečnostních důvodů ale operace Azure IoT nezpřístupňuje zprostředkovatele MQTT mimo cluster. Jako alternativní řešení máte následující možnosti:
Upozornění
Tyto tři přístupy jsou vhodné pouze pro vývojová a testovací prostředí. Za žádných okolností byste je neměli používat v produkčním prostředí.
Připojte se k výchozímu naslouchacímu procesu v clusteru. Tato možnost používá výchozí konfiguraci a nevyžaduje žádné další aktualizace. Jste omezeni na malou sadu klientských nástrojů MQTT.
NodePortPomocí služby zpřístupňte zprostředkovatele MQTT mimo cluster. Tato možnost vyžaduje aktualizaci konfigurace zprostředkovatele MQTT. Můžete použít libovolné klientské nástroje MQTT, které podporují připojení ke konkrétnímu portu.LoadBalancerPomocí služby zpřístupňte zprostředkovatele MQTT mimo cluster. Tato možnost vyžaduje aktualizaci konfigurace zprostředkovatele MQTT. Můžete použít libovolné klientské nástroje MQTT, které podporují připojení ke konkrétnímu portu.
Připojení k výchozímu naslouchacímu procesu v clusteru
Pokud se chcete připojit k výchozímu naslouchacímu procesu v clusteru, můžete nasadit pod, na kterém běží klientské nástroje MQTT založené na rozhraní příkazového řádku, jako mosquitto_sub jsou například a mosquitto_pub. Následující příkaz nasadí takový pod do clusteru:
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
Po spuštění podu se můžete připojit k prostředí v podu:
kubectl exec --stdin --tty mqtt-client -n azure-iot-operations -- sh
Pomocí tohoto prostředí můžete spouštět příkazy, jako mosquitto_sub je například a mosquitto_pub pracovat s zprostředkovatelem MQTT. Pokud se například chcete přihlásit k odběru všech témat v tématu 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)
Všimněte si, jak příkaz načte soubor certifikátu a token ze systému souborů podu. Soubor mqtt-client.yaml manifestu tyto soubory připojí k podu.
Pokud chcete dostat jednu zprávu z azure-iot-operations/data/thermostat tématu, přidejte tuto -C 1 možnost:
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)
Pokud chcete zobrazit vlastnosti uživatele MQTT v5 ve zprávách, použijte -F %P tuto možnost:
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)
Publikování zprávy do azure-iot-operations/data/valve tématu:
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)
Po dokončení použití podu klientských nástrojů MQTT ho můžete z clusteru odstranit:
kubectl delete -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/mqtt-client.yaml
Další informace o této konfiguraci najdete v tématu Připojení k výchozímu naslouchacímu procesu v clusteru.
NodePort Použití nebo LoadBalancer služby
Pokud podle pokynů nakonfigurujete port uzlu nebo službu nástroje pro vyrovnávání zatížení tak, aby zpřístupnil zprostředkovatele MQTT mimo cluster, můžete použít libovolné klientské nástroje MQTT, které podporují připojení k určitému portu. Následující příklady předpokládají, že jste službu nakonfigurovali bez ověřování, autorizace nebo protokolu TLS. Teď se můžete pomocí oblíbených klientských nástrojů MQTT připojit ke zprostředkovateli MQTT na portu 1883, pokud používáte nástroj pro vyrovnávání zatížení nebo nakonfigurovaný port, pokud používáte port uzlu.
Pokud například chcete spustit opensourcový nástroj mqttui na počítači, na kterém je spuštěný cluster Kubernetes, použijte následující příkaz:
mqttui --broker mqtt://localhost:1883
Návod
Pokud jste nakonfigurovali nástroj pro vyrovnávání zatížení a port 1883 je otevřený na veřejné IP adrese hostitelského počítače, můžete se pomocí následujícího příkazu připojit ke zprostředkovateli MQTT z jiného počítače: mqttui --broker mqtt://<cluster-machine-public-ip>:1883
Pomocí mqttui tohoto nástroje se můžete přihlásit k odběru témat, publikovat zprávy a zobrazit zprávy, které procházejí přes zprostředkovatele:
Pokud chcete zobrazit zprávy v určitém tématu, například azure-iot-operations/data/thermostat, použijte následující příkaz:
mqttui --broker mqtt://localhost:1883 azure-iot-operations/data/thermostat
Pokud chcete publikovat zprávu do azure-iot-operations/data/valve tématu, použijte následující příkaz:
mqttui publish --broker mqtt://localhost:1883 azure-iot-operations/data/valve open:15%
Pokud chcete na počítači, na kterém je spuštěný cluster Kubernetes, spustit opensourcový nástroj MQTT Explorer , použijte následující konfiguraci:
Pokud chcete na místním počítači spustit opensourcový nástroj MQTT Explorer pro připojení k počítači, na kterém je spuštěný cluster Kubernetes, použijte následující konfiguraci:
Ujistěte se, že je v Průzkumníku # MQTT nakonfigurované alespoň téma:
Po připojení uvidíte zprávy v tématech, která jste se přihlásili k odběru a publikování zpráv: