Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure IoT İşlemleri örneklerinizi öğrenirken, keşfederken veya sorun giderirken bazı yaygın araçların nasıl kullanılacağı açıklanır. Bu araçlar Azure portalı, Azure CLI, işlem deneyimi web kullanıcı arabirimi ve observability kaynakları tarafından sağlanan özelliklere ek olarak sunulur.
Kubernetes araçları
Azure IoT İşlemleri bileşenleri standart bir Kubernetes kümesinde çalışır. Kümenizle etkileşime geçmek ve yönetmek için kubectl ve k9s CLI araçlarını kullanabilirsiniz.
Kubernetes dağıtım bildirimlerini kullanarak bileşenleri yönetme
Önemli
Kubernetes dağıtım bildirimlerinin kullanımı üretim ortamlarında desteklenmez ve yalnızca hata ayıklama ve test için kullanılmalıdır.
Genel olarak, Azure IoT İşlemleri, Azure Arc platformunu kullanarak yapılandırmayı Azure Resource Manager (ARM) ve Azure portalı, Bicep ve Azure CLI gibi ön uç araçlar aracılığıyla yönetebileceğiniz hibrit bir bulut deneyimi sağlar.
Ancak, bir hata ayıklama veya test ortamında YAML Kubernetes dağıtım bildirimlerini kullanarak Azure IoT İşlemleri bileşenlerini yönetebilirsiniz. Bu, Azure IoT İşlemleri bileşenlerini yönetmek için kubectl gibi araçları kullanabileceğiniz anlamına gelir. Bu özelliğin bazı sınırlamaları vardır:
-
az iot ops enable-rsynckomutunu kullanarak Azure IoT İşlemleri kaynak eşitlemeyi etkinleştirmediğiniz sürece, Kubernetes dağıtım bildirimleri kullanılarak kaynaklarda yapılan değişiklikler Azure ile eşitlenmez. Kaynak eşitleme hakkında daha fazla bilgi edinmek için bkz. Kaynak eşitleme. - Kaynak eşitleme etkinleştirilse bile, Kubernetes dağıtım bildirimleri kullanılarak oluşturulan yepyeni kaynaklar Azure eşitlenmez. Yalnızca mevcut kaynaklarda yapılan değişiklikler eşitlenir.
Önemli
Üretimde bulut her zaman gerçeğin kaynağıdır. İşlem deneyimini, Azure portalını, Azure CLI veya ARM/Bicep şablonlarını kullanarak her zaman Azure aracılığıyla kaynak oluşturun ve değiştirin. Kümede doğrudan kaynak oluşturmak veya mevcut Kubernetes özel kaynaklarını düzenlemek, bulut ile kenar arasında senkronizasyon bozukluğuna yol açabilir ve üretim ortamlarında desteklenmez.
kubectl
kubectl , kümenizi yönetmeye yönelik Kubernetes komut satırı aracıdır. Resmi kubernetes belgelerinde öğrenebileceğiniz birçok özelliğe sahiptir. Bu makalede, Azure IoT Operasyonları ile çalışırken, çalışan podları listeleme ve günlükleri görüntüleme gibi kubectl'nin yaygın kullanımları açıklanmaktadır.
Örneğinize bağlanmak için kubectl özelleştirin
Prep Azure Arc etkinleştirilmiş Kubernetes kümenizi makalesinde, Kubernetes kümenizi dağıttığınız makinede kubectl komutlarını çalıştırdığınızda k3s kümenize bağlanmak için kubectl yapılandırma işlemi açıklanır.
İpucu
Yeni bir terminal penceresi açtığınızda ortam değişkenini ayarlamak zorunda kalmamak için export KUBECONFIG=~/.kube/config komutunu .bashrc veya .bash_profile dosyasına ekleyin.
Azure IoT İşlemleri örneğinizi Arc özellikli bir AKS-EE'ye dağıttıysanız kubectl yapılandırması sizin için otomatik olarak ayarlanır. Komutları doğrudan kümenizi dağıttığınız makinedeki komut satırından çalıştırabilirsiniz kubectl .
Arc özellikli kümenizi dağıttığınız makine yerine yerel istemci makinenizden komut çalıştırmak kubectl da mümkündür:
- Ubuntu/k3s
-
AKS
Tek seferlik bir adım olarak SSH kullanarak kümenizi dağıttığınız makineye bağlanın ve aşağıdaki komutları çalıştırın.
<your-name> yerine adınızı yazdığınızdan emin olun.
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
Belirteci not edin. İstemci makinenizde komut çalıştırdığınızda kubectl kimlik doğrulaması yapmak için bu belirteci kullanırsınız. Artık Kubernetes kümenizi çalıştıran makineyle bağlantınızı kesebilirsiniz.
kubectl İstemci makinenizde kullanarak kümeye bağlanmak için iki terminal açın:
İlk terminalde aşağıdaki komutu çalıştırarak kümenize bağlanacak bir ara sunucu yapılandırın. Üç yer tutucunun değerlerini değiştirmeyi unutmayın:
az connectedk8s proxy -n <your-arc-enabled-cluster-name> -g <your-arc-enabled-cluster-resource-group> --token <token-from-previous-step>İkinci terminalde komut çalıştırırken
kubectlbu terminali açık bırakın.İkinci terminalde komutlarınızı uzak kümenizde
kubectlçalıştırabilirsiniz. Örneğin,azure-iot-operationsad alanındaki podları listelemek için:kubectl get pods -n azure-iot-operationsİpucu
k9syapılandırmasını kullanankubectlgibi komutları bu terminalde çalıştırabilirsiniz.Terminalinizi ilk kapatana kadar
kubectlbağlamı, uzak kümeye ayarlanmış olarak kalır.
Daha fazla bilgi edinmek için bkz. Azure Arc etkin Kubernetes kümelerine güvenli bir şekilde bağlanmak için küme bağlanmayı kullanma.
Ad alanları
Arc ve Azure IoT İşlemleri varsayılan olarak Kubernetes kümesinde aşağıdaki ad alanlarını kullanır:
- Azure IoT İşlemleri bileşenleri için
azure-iot-operations. - Azure Arc etkinleştirilmiş Kubernetes bileşenleri için
azure-arc.
İpucu
Kümenizdeki tüm ad alanlarını görüntülemek için şu komutu çalıştırın: kubectl get namespaces.
Yaygın kubectl komutlar
Ad alanında azure-iot-operations çalışan tüm podları görüntülemek için aşağıdaki komutu çalıştırın:
kubectl get pods -n azure-iot-operations
Çıktı aşağıdaki örneğe benzer:
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
Belirli bir pod, örneğin aio-opc-opc.tcp-1-858b9ff67-dxwvb podu için günlükleri görüntülemek amacıyla aşağıdaki komutu çalıştırın:
kubectl logs aio-opc-opc.tcp-1-858b9ff67-dxwvb -n azure-iot-operations
Belirli bir podun, örneğin aio-opc-opc.tcp-1-858b9ff67-dxwvb podunun okunabilir bir açıklamasını görüntülemek için aşağıdaki komutu çalıştırın:
kubectl describe pod aio-opc-opc.tcp-1-858b9ff67-dxwvb -n azure-iot-operations
Bazı yerlerde Azure IoT İşlemleri belgelerinde, bir yapılandırma değişikliği yapmak için Kubernetes manifest dosyasını uygulamak amacıyla kubectl apply komutu kullanılır.
k9s
k9s yardımcı programı, Kubernetes kümenizi yönetmek için terminal tabanlı bir kullanıcı arabirimi sunar. Kümenize bağlanmak için yapılandırmanızı kubectl kullanır ve kümenizle etkileşim kurmak için görsel bir yol sağlar. Varsayılan görünümü, kümenizde çalışmakta olan tüm podları listeler:
Azure IoT İşlemleri ile çalışırken, görünümü yalnızca azure-iot-operations ad alanında podları gösterecek şekilde filtreleyebilirsiniz.
Komut panelini açmak için yazın
:, ardından yazınnsve Enter tuşuna basın.Ad alanları listesinden seçin
azure-iot-operationsve Enter tuşuna basın.Artık yalnızca azure-iot-operations ad alanındaki podları gösteren pod listesi:
İpucu
Artık filtre uygulamak için sayı tuşlarını kullanabilirsiniz. Önceki ekran görüntüsü 0'ın tüm podları gösterdiğini ve 1'in yalnızca azure-iot-operations ad alanındaki podları gösterdiğini belirtir.
Podlarınız hakkındaki bilgileri görüntülemek için kısayol tuşlarını kullanabilirsiniz. Örneğin:
Bir podu açıklamak için listeden seçin ve d tuşuna basın.
Pod günlüklerini görüntülemek için, podu listeden seçin ve l tuşuna basın.
İpucu
Günlük dosyasında gezinmek için sayı tuşlarını kullanabilirsiniz.
Kümede podlar dışındaki özel kaynak türlerini görüntülemek için:
Özel kaynak türlerinin listesini görüntülemek için Ctrl-a tuşlarına basın.
Cihazlar gibi özel kaynak türünü seçin ve Enter tuşuna basın.
İpucu
Özel kaynak türünü ada göre aramak için yazın / ve aradığınız türün adını yazmaya başlayın.
Özel bir kaynak seçin ve kullanılabilir işlemlerden birini seçin. Örneğin, bir cihaz uç noktası profilini seçip y tuşuna basarak YAML tanımını görüntüleyebilirsiniz. Bazı kaynaklar için yapılandırmayı düzenleyebilirsiniz.
Aşağıdaki tabloda, Azure IoT İşlemleri çalışabileceğiniz bazı özel kaynak türleri açıklanmaktadır:
| Özel kaynak türü | Açıklama |
|---|---|
devices |
Bir cihazın yapılandırmasını temsil eder. |
assets |
Bir varlığın yapılandırmasını temsil eder. |
brokers, brokerlisters, brokerauthentications, brokerauthorizations |
Bir MQTT aracısının yapılandırmasını temsil edin. |
dataflows, dataflowendpoints, dataflowprofiles |
Veri akışının yapılandırmasını temsil edin. |
secrets, secretsyncs, secretproviderclasses |
Sır ve sır yönetimi yapılandırmasını temsil edin. |
MQTT araçları
öğrenme, test veya sorun giderme için Azure IoT İşlemleri örneğinizdeki MQTT aracısı ile etkileşim kurmak için, önce MQTT istemcileri ile MQTT aracısına bağlantıyı test etme: kümenin içinden bağlanma veya aracıyı bir NodePort veya LoadBalancer hizmetle kümenin dışında kullanıma sunma başlığı altında açıklanan üretim dışı yaklaşımlardan birini kullanarak aracıyı kullanıma sunun. Bu bölümün geri kalanında, bu test dinleyicilerine karşı çalıştırabileceğiniz sorun giderme araçları gösterilir.
Dikkat
Bu yaklaşımlar yalnızca geliştirme ve test ortamları için uygundur. Bunları asla üretimde kullanmayın.
Küme içindeki varsayılan dinleyiciye bağlanma
Küme içindeki varsayılan dinleyiciye bağlanma bölümünde açıklandığı gibi mqtt-client podunu dağıtın ve içinde bir kabuk açın. Ardından, kabukta Azure IoT İşlemleri veri konu başlıklarındaki iletileri incelemek ve yayımlamak için mosquitto_sub ve mosquitto_pub kullanın.
Örneğin, altındaki azure-iot-operations/datatüm konulara abone olmak için:
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)
Tek bir ileti almak için azure-iot-operations/data/thermostat konusuna aşağıdaki -C 1 seçeneğini ekleyin:
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)
İletilerdeki MQTT v5 kullanıcı özelliklerini görüntülemek için şu -F %P seçeneği kullanın:
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)
Mesaj yayımlamak için azure-iot-operations/data/valve konusuna:
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)
İşiniz bittiğinde istemci podunu silin:
kubectl delete pod mqtt-client -n azure-iot-operations
NodePort Veya LoadBalancer hizmeti kullanma
Düğüm bağlantı noktası veya Yük dengeleyici hizmetini, MQTT aracısını kümenin dışında kullanıma sunma amacıyla yapılandırma adımlarını izlerseniz, belirli bir bağlantı noktasına bağlanmayı destekleyen tüm MQTT istemci araçlarını kullanabilirsiniz. Aşağıdaki örneklerde, hizmeti kimlik doğrulaması, yetkilendirme veya TLS olmadan yapılandırdığınız varsayılır. Artık, yük dengeleyici kullanıyorsanız 1883 numaralı bağlantı noktasını ya da düğüm bağlantı noktası kullanıyorsanız yapılandırılmış bağlantı noktasını kullanarak MQTT aracısına bağlanmak için sık kullandığınız MQTT istemci araçlarını kullanabilirsiniz.
Örneğin, Kubernetes kümenizin çalıştığı makinede açık kaynak mqttui aracını çalıştırmak için aşağıdaki komutu kullanın:
mqttui --broker mqtt://localhost:1883
İpucu
Bir yük dengeleyici yapılandırdıysanız ve ana makinenin genel IP adresinde 1883 numaralı bağlantı noktası açıksa, farklı bir makineden MQTT aracısına bağlanmak için aşağıdaki komutu kullanabilirsiniz: mqttui --broker mqtt://<cluster-machine-public-ip>:1883
Aracı kullanarak mqttui konulara abone olabilir, iletileri yayımlayabilir ve aracıdan akan iletileri görüntüleyebilirsiniz:
Belirli bir konu, örneğin azure-iot-operations/data/thermostat, üzerindeki iletileri görüntülemek için aşağıdaki komutu kullanın:
mqttui --broker mqtt://localhost:1883 azure-iot-operations/data/thermostat
Konuya ileti yayımlamak için azure-iot-operations/data/valve aşağıdaki komutu kullanın:
mqttui publish --broker mqtt://localhost:1883 azure-iot-operations/data/valve open:15%
Kubernetes kümenizin çalıştığı makinede açık kaynak MQTT Gezgini aracını çalıştırmak için aşağıdaki yapılandırmayı kullanın:
Kubernetes kümenizin çalıştığı makineye bağlanmak üzere yerel makinenizde açık kaynak MQTT Gezgini aracını çalıştırmak için aşağıdaki yapılandırmayı kullanın:
MQTT Gezgini'nde en azından # yapılandırılmış bir konu olduğundan emin olun:
Bağlandıktan sonra abone olduğunuz konularda iletileri görebilir ve iletileri yayımlayabilirsiniz:
İpuçları
Azure IoT İşlemleri örneğinle çalışmanıza yardımcı olacak bazı ek ipuçları aşağıdadır:
Azure IoT İşlemleri örneğinizin özel konumunu bulma
Azure IoT İşlemleri örneğinle ilişkili özel konumu bulmak için aşağıdaki komutu kullanın:
az iot ops show --name <YOUR_INSTANCE_NAME> --resource-group <YOUR_RESOURCE_GROUP> --query "extendedLocation.name" --output tsv
Özel konumu Azure portalında Extended location alanındaki örneğe genel bakış sayfasında da bulabilirsiniz.