Uygulamanızı ekleme (önizleme)
Bu makalede, Kalıcı Birim (PV) ve Kalıcı Birim Talebi (PVC) oluşturduğunuz varsayılır. PV oluşturma hakkında bilgi için bkz . Kalıcı birim oluşturma. PVC oluşturma hakkında bilgi için bkz . Kalıcı Birim Talebi Oluşturma.
Azure IoT İşlemleri veri işlemcisini yapılandırma
Azure IoT İşlemlerini (AIO) kullandığınızda, Veri İşlemcisi Edge Depolama Hızlandırıcısı için herhangi bir bağlama olmadan oluşturulur. Aşağıdaki görevleri gerçekleştirebilirsiniz:
- Daha önce oluşturduğunuz Edge Depolama Hızlandırıcısı PVC için bir bağlama ekleyin.
- Tüm işlem hatlarının çıkış aşamasını, yeni oluşturduğunuz Edge Depolama Hızlandırıcısı bağlamasına çıkış olarak yeniden yapılandırın.
aio-dp-runner-worker-0 podlarınıza Edge Depolama Hızlandırıcısı ekleme
Bu podlar statefulSet'in bir parçasıdır. Bağlama noktaları eklemek için statefulSet'i yerinde düzenleyemezsiniz. Bunun yerine şu yordamı izleyin:
statefulSet'i yaml'ye dökümünü al:
kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
statefulSet'i, volumeMounts ve birimlere ESA için yeni bağlamaları içerecek şekilde düzenleyin:
volumeMounts: - mountPath: /etc/bluefin/config name: config-volume readOnly: true - mountPath: /var/lib/bluefin/registry name: nfs-volume - mountPath: /var/lib/bluefin/local name: runner-local ### Add the next 2 lines ### - mountPath: /mnt/esa name: esa4 volumes: - configMap: defaultMode: 420 name: file-config name: config-volume - name: nfs-volume persistentVolumeClaim: claimName: nfs-provisioner ### Add the next 3 lines ### - name: esa4 persistentVolumeClaim: claimName: esa4
Mevcut statefulSet'i silin:
kubectl delete statefulset -n azure-iot-operations aio-dp-runner-worker
Bu işlem tüm
aio-dp-runner-worker-n
podları siler. Bu bir kesinti düzeyi olayıdır.ESA bağlamalarıyla yeni bir statefulSet of aio-dp-runner-worker(lar) oluşturun:
kubectl apply -f stateful_worker.yaml -n azure-iot-operations
aio-dp-runner-worker-n
Podlar başladığında, ESA'ya bağlamalar ekler. PVC bu durumu iletmelidir.Veri İşlemcisi çalışanlarınızı ESA birimlerine erişimi olacak şekilde yeniden yapılandırdıktan sonra, çalışan POD'lerinde ESA biriminizin bağlı konumuna karşılık gelen yerel bir yol kullanmak için işlem hattı yapılandırmasını el ile güncelleştirmeniz gerekir.
İşlem hattını değiştirmek için kullanın
kubectl edit pipeline <name of your pipeline>
. Bu işlem hattında çıkış aşamanızı aşağıdaki YAML ile değiştirin:output: batch: path: .payload time: 60s description: An example file output stage displayName: Sample File output filePath: '{{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}' format: type: jsonStream rootDirectory: /mnt/esa type: output/file@v1
Kubernetes yerel uygulamasını yapılandırma
Kalıcı Birim Talebine (PVC) karşı genel bir tek pod (Kubernetes yerel uygulaması) yapılandırmak için, aşağıdaki içeriklere sahip adlı
configPod.yaml
bir dosya oluşturun:kind: Deployment apiVersion: apps/v1 metadata: name: example-static labels: app: example-static ### Uncomment the next line and add your namespace only if you are not using the default namespace (if you are using azure-iot-operations) as specified from Line 6 of your pvc.yaml. If you are not using the default namespace, all future kubectl commands require "-n YOUR_NAMESPACE" to be added to the end of your command. # namespace: YOUR_NAMESPACE spec: replicas: 1 selector: matchLabels: app: example-static template: metadata: labels: app: example-static spec: containers: - image: mcr.microsoft.com/cbl-mariner/base/core:2.0 name: mariner command: - sleep - infinity volumeMounts: ### This name must match the 'volumes.name' attribute in the next section. ### - name: blob ### This mountPath is where the PVC is attached to the pod's filesystem. ### mountPath: "/mnt/blob" volumes: ### User-defined 'name' that's used to link the volumeMounts. This name must match 'volumeMounts.name' as specified in the previous section. ### - name: blob persistentVolumeClaim: ### This claimName must refer to the PVC resource 'name' as defined in the PVC config. This name must match what your PVC resource was actually named. ### claimName: YOUR_CLAIM_NAME_FROM_YOUR_PVC
Not
Kendi ad alanınızı kullanıyorsanız, gelecekteki
kubectl
tüm komutların komutuna eklenmesi gerekir-n YOUR_NAMESPACE
. Örneğin, standartkubectl get pods
yerine kullanmanızkubectl get pods -n YOUR_NAMESPACE
gerekir.Bu .yaml dosyasını uygulamak için aşağıdaki komutu çalıştırın:
kubectl apply -f "configPod.yaml"
Podunuzun adını bulmak için kullanın
kubectl get pods
. Sonraki adımda ihtiyacınız olduğu için bu adı kopyalayın.Aşağıdaki komutu çalıştırın ve değerini önceki adımda kopyalanan değerinizle değiştirin
POD_NAME_HERE
:kubectl exec -it POD_NAME_HERE -- bash
Dizinleri
/mnt/blob
, içindenconfigPod.yaml
belirtildiği gibi bağlama yoluna değiştirin.Örneğin, bir dosya yazmak için komutunu çalıştırın
touch file.txt
.Azure portalında depolama hesabınıza gidin ve kapsayıcıyı bulun. Bu, dosyanızda
pv.yaml
belirttiğiniz kapsayıcıyla aynıdır. Kapsayıcınızı seçtiğinizde kapsayıcının içinde doldurulmuş ifadesini görürsünüzfile.txt
.
Sonraki adımlar
Bu adımları tamamladıktan sonra Azure İzleyici ve Kubernetes İzleme'yi veya Prometheus ve Grafana ile üçüncü taraf izlemeyi kullanarak dağıtımınızı izlemeye başlayın:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin